Updated free-programming-books-sr.md withi Singidunum University books

What does this PR do?
Add resource(s) |  Improve repo
For resources
https://singipedia.singidunum.ac.rs/
Description
Added standard issue university books (from University Singidunum in Serbia) for multiple different languages.
Why is this valuable (or not)?
For any Serbian students struggling with the English language this may be a great start.
How do we know it's really free?
If you navigate to Singidunum University's website, under the publishing section you can find the link to Singipedia, where all the university publishing is freely uploaded.
For book lists, is it a book? For course lists, is it a course? etc.
Yep. Everything you see here either is or was used as learning material in various courses.
Checklist:

[x] Read our contributing guidelines.
[x] Search for duplicates.
[x] Include author(s) and platform where appropriate.
[x] Put lists in alphabetical order, correct spacing.
[x] Add needed indications (PDF, access notes, under construction).
[x] Used an informative name for this pull request.

Follow-up

Check the status of GitHub Actions and resolve any reported warnings!

Thanks, and welcome to free-programming-books!


Idea : Forced exception inside logger to print stack trace.

This is just idea we can discuss.
After reading Salesforce System class, There is no way to print stack trace where this debugger was written.
So what I was thinking is if we manually throw exception and from catch block we get
e.getStacktraceString();

we can pass this information to client as well.

if motive is to get class name only then we can get like
String.valueOf(this).substring(0,String.valueOf(this).indexOf(':'));
On Sat, May 23, 2015 at 7:55 PM, Azharuddin<EMAIL_ADDRESS>wrote:

This is just idea we can discuss.
After reading Salesforce System class, There is no way to print stack
trace where this debugger was written.
So what I was thinking is if we manually throw exception and from catch
block we get
e.getStacktraceString();
we can pass this information to client as well.
—
Reply to this email directly or view it on GitHub
https://github.com/gs-akhan/salesforce-debugger/issues/6.

Yes, the idea is to get class name.
But String.valueOf(this).substring(0,String.valueOf(this).indexOf(':')); will give class name as
"RestLogger" if it is used as RestLogger.debug()

Will not call this from RestLogger class, developer can pass this as
parameter to our debug function.
On May 24, 2015 4:49 PM, "Azharuddin"<EMAIL_ADDRESS>wrote:

Yes, the idea is to get class name.
But String.valueOf(this).substring(0,String.valueOf(this).indexOf(':'));
will give class name as
"RestLogger" if it is used as RestLogger.debug()
—
Reply to this email directly or view it on GitHub
https://github.com/gs-akhan/salesforce-debugger/issues/6#issuecomment-105003014
.

Oh yes. that makes sense. nice idea.


Shadow dom support

Hi,
I just tried to use px-threeup with shadow-dom. The flex-layout does not really seem to work.
Everything works fine with shady-dom.
Expected behavior and actual behavior:
same layout behavior in shady- and shadow-dom
Steps to reproduce the problem:
// Setup Polymer options
window.Polymer = {
dom: 'shadow',
    lazyRegister: true,
};

import and use px-widget-cards
Environment (component version number, Browser (including version), operating system, hardware, etc):

<EMAIL_ADDRESS><EMAIL_ADDRESS>

Can you elaborate on how it doesn't work? Screenshots would be great!
cc/ @randyaskin - you might know if this is working or not, I can't see any differences between shady/shadow in the latest version (redesign).

I just tried the recent version and it seems to be working fine now.
For clarity: can the dependency eq.js be removed? Recent SASS/CSS does not seem to rely on it anymore and it does not seem to work with shadow dom anyhow.

Good catch. Removed in 3.0.2 (plus fixed some other wonkiness).


#911 fix

Hello.
This should fix #911
sorry, as this is sort of a duplicate of #928 but I couldn't make commitlint work there, so I just opened a new one.
I modified a test a little, as it seems to me some versions of pandas secondary sort on index, and that is what messed up the tests on #928
also, pre-commit seems all kinds of broken, but I linted manually best I could

Thanks for taking this on @endremborza, it looks like my old PR was broken after the repository transferred ownership over to ydataai. Would you mind adding a unit test for this? I believe the current implementation will fail for the following:
data = [1,2,3,4]
weights = [1,1,1,100]
weighted_median(data, weights)
-> TypeError: only integer scalar arrays can be converted to a scalar index

The issue arises on this line

w_median = (data[np.array(weights) == np.max(weights)])[0]

Because data is still technically a list and can't be indexed by a boolean array.
I'm not particularly familiar with this function but according to the doc notes it's intended to support lists and arrays, if we are forced into coercion to accomplish that, might as well make it explicit and take advantage of numpy functionality everywhere. Something like
    if not isinstance(data, np.ndarray):
        data = np.array(data)
    if not isinstance(weights, np.ndarray):
        weights = np.array(weights)

    s_data, s_weights = map(np.sort, [data, weights])
    midpoint = 0.5 * np.sum(s_weights)

    if s_weights[-1] > midpoint:
        w_median = data[weights == np.max(weights)][0]
    else:
        cs_weights = np.cumsum(s_weights)
        idx = np.where(cs_weights <= midpoint)[0][-1]
        if cs_weights[idx] == midpoint:
            w_median = np.mean(s_data[idx : idx + 2])
        else:
            w_median = s_data[idx + 1]
    return w_median

The type signature should also be fixed, you could go with something like this
from typing import Union

def weighted_median(data: Union[list, np.ndarray], weights: Union[list, np.ndarray]) -> Union[int, float]:

I'm not 100% sure about the return signature but the base implementation certainly supports float returns for float data.
Finally, this isn't an issue for you @endremborza but @sbrugman. Who is the primary contact / maintainer at ydataai? It doesn't look like the automated tests are running on PRs anymore based on this specific instance.

weighted_median is only called once in the whole codebase, here:
https://github.com/ydataai/pandas-profiling/blob/22a49d11a53e7c9205b4882d10500d97a76e34ce/src/pandas_profiling/model/pandas/describe_categorical_pandas.py#L182
and I'm quite positive that there is no way .values returns a list, so adding casting seems unnecessary until this function is utilized more.
should a unit test still cover this one function with arrays?

and I'm quite positive that there is no way .values returns a list, so adding casting seems unnecessary until this function is utilized more.

Doesn't the current PR propose to solve issue #911 by casting weights to np.array? Am I missing something?

Yes, but never from a list, but from a pd.arrays.PandasArray that pandas seems to return now sometimes for values for some reason, and numpy does not allow that as an indexer. This cast makes sure that this is never a problem.

Exactly! So either way you're casting right? List, pandasArray, whatever doesn't really matter.

Alright, but for the data parameter it doesn't really matter, as being indexed should not be a problem, and in the else block, the casted weights is not used, so my reasoning was that this way it's shorter and a bit more efficient.
What you're suggesting is more explicit though, and if that's more important I'm fine with that. As it usually is in OS, someone has to make a decision, but its not straightforward, who :slightly_smiling_face:

@endremborza and @ieaves Thanks a ton for your help :)

Seems fixed!
Apparently pandas 1.4.x changed the output type of the .values property on the Series in some instances. However, according to the pandas documentation, .values is not the recommended way to obtain the numpy array. Instead this should be done via .to_numpy().
Ensuring the desired dtypes and avoiding the casting on the util method, it seems that in length_summary_vc we could just change the weighted_median call arguments to:
        "median_length": weighted_median(
            length_counts.index.to_numpy(), weights=length_counts.to_numpy()
        ),

@endremborza this would be my suggestion


Segmentation fault in RSA_pkey_ctx_ctrl

#8  0x00007fc8103f0b55 in RSA_pkey_ctx_ctrl () from /lib64/libcrypto.so.3
#9  0x00007fc815ef03a3 in pgpVerifySigRSA () from /lib64/librpmio.so.9
#10 0x00007fc815edc55e in pgpVerifySignature () from /lib64/librpmio.so.9
#11 0x00007fc815ee418f in pgpPrtParams () from /lib64/librpmio.so.9
#12 0x00007fc815eefb81 in rpmPubkeyNew () from /lib64/librpmio.so.9
#13 0x00007fc815e697c5 in loadKeyring () from /lib64/librpm.so.9
#14 0x00007fc815e69c38 in rpmtsInitIterator () from /lib64/librpm.so.9
#15 0x00007fc815e580f1 in matchesIterator () from /lib64/librpm.so.9
#16 0x00007fc815e58672 in initQueryIterator () from /lib64/librpm.so.9
#17 0x00007fc815e59617 in rpmcliArgIter () from /lib64/librpm.so.9
#18 0x00007fc815e599fa in rpmcliQuery () from /lib64/librpm.so.9

It happened on RHEL 9

There isn't sufficient detail here to make progress, and RedHat patches OpenSSL extensively in support of "Crypto Policies". If the RPM utilities are having issues with RSA keys, you should start with the vendor, rather than the OpenSSL project.

Let me reopen it - low-level functions are normally not modified by Red Hat patches. But I agree with @vdukhovni, there is not enough information so could you please install debug libraries and provide more information?

No until you have a reproducer

While many low level functions are not modified by Redhat, signature verification functions definitely are, in particular crypto policies restrict verification of RSA with SHA1 signatures, and perhaps also set minimum key size limits, ...
I still think the issue should first be reported to RedHat, and if found by RedHat customer support to be an issue in the underlying upstream OpenSSL code, then RedHat can open an issue with OpenSSL.

Concur with @vdukhovni , while we would like to help, if this is on the RHEL9 distro's version of openssl, reported by a distro customer without a reproducer, seems like the only reasonable course to progress here is to have the RHEL support team take first stab at it.  If RHEL discovers this is reproducible on upstream openssl, please feel free to open  an issue here

BTW, the command that was run: "rpm -ql --dump "
While running with the additional 2 flags: --nodigest --nosignature it does not crash.

I don't think this command can reveal any private keys, so you may ask clients to get a full backtrace or raise an issue in Red Hat tracker


add pthread_equal

From its documentation:

The pthread_equal() function is necessary because thread IDs should be considered opaque: there is no portable way for applications to directly compare two pthread_t values.

Can you change this to target main? Can cherry pick to stable after merge.
@rustbot label +stable-nominated

:umbrella: The latest upstream changes made this pull request unmergeable. Please resolve the merge conflicts.

I don't know why freebsd would have failed, it should be available https://man.freebsd.org/cgi/man.cgi?query=pthread_equal&sektion=3.


suggestion for configuration

First of all, thank you for this wonderful and up-to-date package; it's a gem.
I realize that there is not much to the package itself to warrant talking to the .env file, but it would be wonderful if the asset shortcut you have provided could take variables (while keeping your prepended defaults for css/js)
I hope this is a reasonable suggestion because this package serves those us who do not want the full-Laravel treatment. I would like to be able to keep my boilerplate folder structure while making your blade repo my default viewer. Since you have made such a nice addition to blade, I thought to ask.
Thanks a bunch for your work. It is much appreciated.

Hi @persianphilosopher, do you mean to change the path of css files?

@duncan3dc : thanks for your reply. It's this passage from the docs:

However the path is optional (‘/css/’ is assumed):

It's that "assumed" part that I hope could accept options so that - for example - if I have:
public/
├── assets
│   ├── css
│   │   └── style.css
I could then use @mycss('styles')  to generate:
<link rel='stylesheet' type='text/css' href='/assets/css/styles.css'>
This is obviously a bit of luxury and not that important but because of my folder structure, I have not managed to use your $assetify code.
As I said before, I think that @css should remain the default but that one could pass an option to override it.
Does that make sense?

Please can you try out this test version and see if it works how you require:
composer require duncan3dc/blade:dev-directives

use duncan3dc\Laravel\Directives;
use duncan3dc\Laravel\BladeInstance;

$directives = (new Directives)
    ->withCss("assets/css")
    ->withJs("assets/js");

$blade = new BladeInstance(__DIR__ . "/views", __DIR__ . "/cache/views", $directives);

If you're using the static helper you can tell it to use your BladeInstance like so:
\duncan3dc\Laravel\Blade::setInstance($blade);

If that all looks ok then I'll package up a release when I get a minute

Yes! Thank you so much. Looks like it's working (didn't test the static helper, just so you know).

Perfect, this is in the 4.1.0 release


Improve API to be data driven on SSH questions and ours

Improve the streamlit template for the creation of controls on our API such that when SSH gives us many questions we can programmatically, data-driven, add them by reading from a CSV file or something.

Let's take a look at the solution of this guy first https://github.com/lukasmasuch/streamlit-pydantic

We can also improve the UI with some components steal from here https://github.com/okld/streamlit-elements?tab=readme-ov-file


support gerrit scm webhooks to trigger Pipelines

What is version of KubeSphere DevOps has the issue?
3.3.0
How did you install the Kubernetes? Or what is the Kubernetes distribution?
ks-installer on k8s
Describe this feature

support Gerrit SCM
support the Gerrit SCM webhooks

Additional information

Gerrit website

same as #598

/assign me

/assign @LeonDevLifeLog

hi @LeonDevLifeLog  thanks for being interested in this issue. Please don't hesitate to tell us if you have any questions about this issue.

Please contact us if there is any progress, thank you.


Test failure on macOS

https://travis-ci.com/github/trikset/trik-studio/jobs/384575476#L1663

Does not happen on MacOS on Azure Pipelines after fixes for Big Sur, which actually were not Big Sur specific

Does not happen on MacOS on Azure Pipelines after fixes for Big Sur, which actually were not Big Sur specific


Alpha Security Release

If you are interested in testing the new alpha release for security, grab it here https://github.com/bwssytems/ha-bridge/releases/download/v4.5.0alpha/ha-bridge-4.5.0alpha.jar
Bridge Control Tab has the 'Update Security Button' - hopefully self explanatory

Works for me using EXEC and Harmony devices, not able to test HUE Api security.
Do you use cookies or sessions?  How long do they persist?
I would suggest adding the Login/Logout link as a main item in the navbar, rather than under Help.

It is session based, so only for as long as the session is active

Is it v5.4.0alpha or should it be v4.50alpha.  I noticed an error on my synology that it was trying to pull from https://github.com/bwssytems/ha-bridge/releases/download/v5.4.0alpha/ha-bridge-5.4.0alpha.jar

Dyslexia... The jar Is 5.4.0alpha, but it will be 4.5.0 when released

I love the new security feature.
Question: if we are to send a push,pull,get, how would the credentials be added?
I see they are required( at least for the first call)
Would we simply add @username:password to the end of the url?

This link
https://github.com/bwssytems/ha-bridge/releases/download/v5.4.0alpha/ha-bridge-5.4.0alpha.jar
fails to download anything
but the following one works..
https://github.com/bwssytems/ha-bridge/releases/download/v5.4.0alpha/ha-bridge-4.5.0alpha.jar
Should that be the case?
Sorry if these aren't great questions, I'm a bit new to github.
This is what I am seeing on the synology docker log.
Latest version on bwssystems github repo is 5.4.0alpha
Installing version '5.4.0alpha'
--2017-03-31 21:27:20--  https://github.com/bwssytems/ha-bridge/releases/download/v5.4.0alpha/ha-bridge-5.4.0alpha.jar
Resolving github.com (github.com)... <IP_ADDRESS>, <IP_ADDRESS>
Connecting to github.com (github.com)|<IP_ADDRESS>|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2017-03-31 21:27:21 ERROR 404: Not Found.
Setting correct permissions
Parameters used:
Server IP : <IP_ADDRESS>
Server Port : 8999
Starting Home Automation Bridge
Error: Unable to access jarfile ha-bridge-5.4.0alpha.jar

I ended up just copying the files over that I downloaded from
https://github.com/bwssytems/ha-bridge/releases/download/v5.4.0alpha/ha-bridge-4.5.0alpha.jar
and renamed the file ha-bridge-4.5.0alpha.jar to ha-brdige-5.4.0alpha.jar and the docker container started up ok  :)

Fixed the link
@tuicemen The security is session based. You will need to save your http session credentials

understood.
however if I add a user& password but don't log in  then go to postman and attempt to make a Get call
http://localhost/api/devices
and use basic authorization I get a {"message":"User not authenticated"}

Well, looks like I will need to change this to basic auth control, that will make it easier

I tested with adding a couple of users and the UI works fine for both custom http sends and scripts saved to the Secure Folder for scripts/executables.
It also works for devices with direct path calls to a program.
I also am not able to test HUE Api security.
Removal of users works and reverts bridge back to non secure

Thanks for fixing the link.  I deleted the file I manually copied and now the package starts up fine and downloads the latest version.

Suggestion:
In the  (bridge control tab) if you click on Save  once the bridge reloads your presented with several 401 errors.(12 in total on that page)
All ending with "User not authenticated with status: Unauthorized - 401"
perhaps this could be reduced to just one  stating re-login is needed as thats what is required.

Issue:
After clicking save in bridge control and a re-login scripts in the script folder no longer work nor do direct exec calls
Custom http calls still work

So, I will be implementing Basic Auth method that can be used. As far as the re-init goes, the re-initialization is removing the authenticated users and I will need to keep that from re-init to re-init.

Ok, implemented changes: https://github.com/bwssytems/ha-bridge/releases/download/v4.5.0alpha-2/ha-bridge-4.5.0alpha-2.jar

Excellent!
Is it possible to add/remove a user with a PUT?

Saving bridge data still results in exec calls failing, all worked prior to doing a save.
Wondering if it may be my scripts folder not being same as default.

Hmmm, maybe the way I'm interpreting the execGarden when it is not set.

And yes, you can add/remove users with a put. The structure is a base64 encoded JSON string that is {"username":"theuser","password":"thepassword"} And of course you don't need the password when removing a user.
The calls are /system/adduser and /system/deluser

Ok I think I figured it out doing some logging.
I set my scripts folder to just scripts and all worked fine prior to doing a save. after the save I looked in the log and now all exec calls start with scripts/
So for a c:/program files..... call it now is scripts/c:/program files....
Scripts located in the scripts folder the calls now look like this scripts/scripts/"the script"

Interesting, so the execGarden is the directory and you do not put a path on the actual exec calls as it will only try to execute the item in that directory only

I Updated security settings for the Secure Folder for scripts/executables to nothing.
this got my calls to C:\program files..... working however my script folder calls look like this /scripts/"the script"  in the log
Not sure why the initial forward slash is still there for those and not the others

I attempted to re-save after changing the  Secure Folder hoping that would revert some things but get this
04-03-2017 19:36:56.930	ERROR	Error file is not writable: data\habridge.config	com.bwssystems.HABridge.BridgeSettings
04-03-2017 19:36:56.937	ERROR	Error writing the file: data\habridge.config message: data\habridge.config	com.bwssystems.HABridge.BridgeSettings
04-03-2017 19:36:56.938	ERROR	Error writing the file: data\habridge.config message: data\habridge.config.old	com.bwssystems.HABridge.BridgeSettings

I will test this as well as it is the portion that I did very little

With the bridge not secure I attempted to add a user using postman and get a 500 error
Does the bridge require it to already be in secure mode with some user already configured to do this?

Only when there are no users does it allow you to add a user without security. After that you need to be authenticated.
Also, I found the issues for the execGarden.

I also get a 500 error if I attempt to remove a user or add a new user when bridge is in the secure mode.
I must be missing something.

So if successful adding a user  should place the bridge in secure mode?
I'll remove all users and attempt again.

OK so I must be doing something wrong
Using postman  with http://localhost/system/adduser
and a body of {"username":Alex10,"password":123@Password}
I get a 500 Internal Error returned

That is because it needs to be base 64 encoded, the whole json string

And also strings in json need to be quoted, even the values

Ok not sure how to do this in Postman (base 64 encoded)
jason value would be like this then: {"username":"Alex10","password":"123@Password"} ?

Use an online converter and cut and paste

OK now I'm getting somewhere however  it seems the password needs to be added twice as I get back
{
"message": "The two passwords do not match"
}

Ahh, yes, it validates the two entries.....

so how do I add the second entry?
{"username":"Alex10","password":"123@Password" &"123@Password"}  doesn't work

Add another field called password2

Updated security issues for exec garden
https://github.com/bwssytems/ha-bridge/releases/download/v4.5.0alpha-3/ha-bridge-4.5.0alpha-3.jar

LOL just tried that prior to you posting
and it seems to work throws the bridge to login at least.

new link https://github.com/bwssytems/ha-bridge/releases/download/v4.5.0alpha-4/ha-bridge-4.5.0alpha-4.jar
Added something for another user not related to security

new build and  add remove user works.
exec commands work as long as I don't specify a Secure folder if I do I get  this
04-04-2017 14:02:25.894	WARN	Could not execute request: scripts/\C:/Alex10/Alex10.exe SENDPLC_B15_On with message: Cannot run program "scripts/\C:/Alex10/Alex10.exe": CreateProcess error=2, The system cannot find the file specified	com.bwssystems.HABridge.plugins.exec.CommandHome
What is the reason for specifying a scripts folder? I can't access that folder anyways unless there is a call I don't know about.
I already specify the script folder in my calls that use a script stored in that folder.
specifying a secure scripts folder means I must reconfigure all my script calls and direct calls won't work.

The reason for the execGarden (not a scripts folder) is to secure your system to only execute the items you put in that directory (i.e. a walled garden). If there was an enterprising individual that accessed your system without some security, they could execute items that would wreak havoc on your system.

Purely cosmetic:

when the login page loads it should default to the "User" field so that it's not necessary to click on the "User" field first.
after entering the password in the respective field a login should be possible by just hitting return.

So basically a login should work like this:

go to page
type name
tab
type password
return
rock'n'roll

Cheers,
Alex

@akurz42 Yep, that is something to implement, Thanks!


ci: remove open pull request pipeline trigger

Description

Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?

Test Configuration:

Node Version:
OS:

Checklist:

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

Additional context

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 100.00%. Comparing base (5f98786) to head (b0cc26c).

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #23   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           13        13
  Lines          145       145
  Branches        14        14
=========================================
  Hits           145       145

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


compose_box: Replace compose box with a banner when cannot post in a channel

When a user cannot post in a channel based on ZulipStream.channelPostPolicy, all parts of the compose box (in both channel and topic narrow) are replaced with a banner, saying: You do not have permission to post in this channel.
Screenshot

Screen recording
https://github.com/user-attachments/assets/c599db3c-755f-41b6-b119-0d6fc931f701
Fixes: #674

Thanks @chrisbobbe for the review! Revision pushed. PTAL!

Thanks! Ah, it looks like this has gathered some conflicts—would you mind rebasing and resolving those please?

Conflicts resolved @chrisbobbe! Please have a look!

Thanks @chrisbobbe for the review. Pushed the new changes. Also added #886 comment. PTAL.
cc @PIG208

Thanks @PIG208 for the review. Changes pushed. PTAL.

Thanks @gnprice. Changes pushed.

Read through the changes and left some comments mostly for style and formatting. Thanks for the revision! The test changes look clean now; I noticed some changes that probably belongs to compose_box: Replace compose box with a banner when cannot post in a channel.

Thanks @PIG208 for the review. Changes pushed.

Looks good. Thanks! Moving this to Greg's review.

Thanks @gnprice for the previous review. New changes pushed. PTAL.
Also added a few comments just above and one in the previous review sub-thread.

Thanks @gnprice for the review. New changes pushed. Please have a look.

Thanks! Looks good — merging.
One commit-message tweak: I noticed the commits had two variants of what the prefix should be for compose-box changes:
388b83b2d compose test [nfc]: Add a parent test group
f14e32dac compose_box: Replace compose box with a banner when cannot post in a channel
namely "compose" vs "compose_box". So I looked at past examples; the shorter "compose" form is what we used originally, and have still used many more times than "compose_box". So edited to "compose":
157418c26 compose: Replace compose box with a banner when cannot post in a channel

FTR here's the command I ended up using to see past usage:
git log --format='%>(20)%an %cs %h %<(26,trunc)%s' --grep compose origin | grep -P '\bcompose(.box)?|'
It's a bit more sophisticated than the quick git log --oneline --grep foo commands I've used many times.


BTHofmann2023 additions

Bug fixes and utilities added during the beamtime at FLASH in nov2023.
Additions:

A pretty print of the processor, including some statistical information about the data loaded. Still requires testing for non-flash loaders.
filter the dataframe before binning to only look at the required columns. This avoids errors when there are issues with values in other columns (i.e. if a column is entirely nans)
added the option of sequentially loading data in the flash loader. This helps to track errors otherwise lost in the parallel processes.

Bugs:

added an error catching when trying to bin a column which has only nans. The error handled by numba was otherwise unclear.

filter the dataframe before binning to only look at the required columns. This avoids errors when there are issues with values in other columns (i.e. if a column is entirely nans)

I don't quite understand this issue, and as I have commented, it makes computation of the dataframe, and thus binning, slower. Can you elaborate on this problem? I tried to reproduce by adding a NaN column to the df, which worked without problems...

it makes computation of the dataframe, and thus binning, slower.

did you test this? does it really make it slower? I cannot recall exactly what the problem was, but will get back to it during analysis certainly. The problem was with a column which had dtypes not accepted by numba. I don't know why numba needed to test all dtypes of all columns, but this was a quick fix which solved the problem.

it makes computation of the dataframe, and thus binning, slower.

did you test this? does it really make it slower?
I cannot recall exactly what the problem was, but will get back to it during analysis certainly. The problem was with a column which had dtypes not accepted by numba. I don't know why numba needed to test all dtypes of all columns, but this was a quick fix which solved the problem.

For mpes, I get something like this pretty consistently:

And also binning is notably slower. For Flash dataframes, the difference is smaller, but also there.

Note the added graph layer:

Tests for the repr methods are failing. This is due to various reasons, the first being that you don't check if the dataframe is loaded, another that you don't check if the columns you request exist (e.g. for non-Flash-loaders).


How to change cached file name URL to another URL?

Hi Sergey, can I change cached image URL to another?

See https://github.com/nostra13/Android-Universal-Image-Loader#usage

Thanks @farazfazli, but this is not to me. I know how to display local file from SD Card, I need change displayed and cached image URL to another URL. Because, when I do upload image to my server, I will be display local file[ file:///sdcard/0/emulated/example/1.jpg] while during uploading after uploading I display this image by uploaded server URL. And UIL downloaded this image again, because i changed URL. I don't want download image again. I want local image file URL change to server URL, but without downloading again.


Add navbar in sign in and sign up page

I added navbar in sign in and sign up page.
issue - #252

@jahnvisahni31 merge it.

@jahnvisahni31 merge it.


Support customize "keepalive-time" in proxy-server

The default keepalive-time is 1 hour, which is too long for the test we are using(OCP will automatically close the connection if no message is transferred)
https://github.com/kubernetes-sigs/apiserver-network-proxy/blob/fc56f4ba47a3da62519f93743830f13abf962492/cmd/server/app/options/options.go#L311
We set this flag to 30s to keep this grpc-connection alive in our practice. (Every 30s proxy-server send proxy-agent a message to keep the connection alive)
Could we support this flag as well?

/assign @yue9944882

Fixed.


Push rejected, failed to compile Pelican app

(pelican)rbeltran in ~/projects/ronbeltran-pelican on master
⚡ heroku apps:create pelican-test-blog
Creating pelican-test-blog... done, stack is cedar-14
https://pelican-test-blog.herokuapp.com/ | git@heroku.com:pelican-test-blog.git
Git remote heroku added
(pelican)rbeltran in ~/projects/ronbeltran-pelican on master
⚡ heroku config:set BUILDPACK_URL=https://github.com/getpelican/heroku-buildpack-pelican
Setting config vars and restarting pelican-test-blog... done, v3
BUILDPACK_URL: https://github.com/getpelican/heroku-buildpack-pelican
(pelican)rbeltran in ~/projects/ronbeltran-pelican on master
⚡ git push heroku master
Initializing repository, done.
Counting objects: 56, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (49/49), done.
Writing objects: 100% (56/56), 214.73 KiB | 68.00 KiB/s, done.
Total 56 (delta 7), reused 0 (delta 0)

-----> Fetching custom git buildpack... done
-----> Pelican app detected
-----> Installing Python (python-2.7.4)
-----> Installing Distribute (distribute-0.6.49)

 !     Push rejected, failed to compile Pelican app

To git@heroku.com:pelican-test-blog.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:pelican-test-blog.git'

Am I doing it wrong or there is an issue with the buildpack?

@schniggie's change seems to work.  Would you please submit a pull request back to this repo?
The post at http://blog.getpelican.com/using-pelican-with-heroku.html needs updating.  Instead of using heroku config:set BUILDPACK_URL=https://github.com/getpelican/heroku-buildpack-pelican, use heroku buildpack:set https://github.com/getpelican/heroku-buildpack-pelican (in my case, I replaced getpelican in that last one with schniggie).

Motivated by @schniggie's work, I set out to make a working build.  See the work done in #8.

Nice, I haven't submitted the pull request last time, because at that time the build still failed. I messaged Heroku about that and it seems they fixed it :)

Awesome, thanks for your patch @DArtagan, using that and some other changes, this buildpack is now working again.

I'm currently having the same issue:
 Successfully installed pip-6.0.8 setuptools-12.0.5
remote: -----> Installing dependencies using pip
remote:        You are using pip version 6.0.8, however version 7.1.0 is available.
remote:        You should consider upgrading via the 'pip install --upgrade pip' command.
remote: -----> Running pelican
remote: WARNING: AUTHOR_SAVE_AS is set to False
remote:        Done: Processed 11 article(s), 1 draft(s) and 2 page(s) in 0.92 seconds.
remote: -----> Installing pcre (pcre-8.36)
remote:
remote:  !     Push rejected, failed to compile Pelican app
remote:
remote: Verifying deploy...
remote:
remote: !	Push rejected to joeblog.
remote:
To git@heroku.com:joeblog.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:joeblog.git'

The heroku logs:
 2015-07-25T05:33:01.283303+00:00 heroku[slug-compiler]: Slug compilation started
2015-07-25T05:33:01.283311+00:00 heroku[slug-compiler]: Slug compilation failed: failed to compile Pelican app
2015-07-25T05:34:41.741583+00:00 heroku[slug-compiler]: Slug compilation started
2015-07-25T05:34:41.741619+00:00 heroku[slug-compiler]: Slug compilation failed: failed to compile Pelican app
2015-07-25T05:42:57.183092+00:00 heroku[slug-compiler]: Slug compilation started
2015-07-25T05:42:57.183122+00:00 heroku[slug-compiler]: Slug compilation failed: failed to compile Pelican app


Fix URL of main page

@pachadotdev The URL on the front page still has "pachamaltese", and needs to be updated to "pachadotdev". Thanks!

thanks @mpadge !! updated :D


Fix ImageStreamListener's hashCode & operator==

Description
I forgot to add onChunk to ImageStreamListener's hashCode & operator== in #33092
Related Issues
https://github.com/flutter/flutter/issues/32374
Tests

Verification of equals and hashCode

Checklist

[x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
[x] I signed the [CLA].
[x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
[x] I updated/added relevant documentation (doc comments with ///).
[x] All existing and new tests are passing.
[x] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require Flutter developers to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change (Please read [Handling breaking changes]). Replace this with a link to the e-mail where you asked for input on this proposed change.
[x] No, this is not a breaking change.

I had just been wondering why operator == and hashCode ignored onChunk.  LGTM.


ensemble

Currently, opposed to features,  there is no way to combine models.
Easiest way would be to try late fusion, i.e. take the output of several models as input of a "meta model"

Yes. As you suggest, It will be easier to combine several results from previous experiments with new module.
e.g.,
python3 -m nkululeko.ensemble result1 result2 result3

Where result1, result2, and result3 are the name of [EXP][name]. In the case the results are not in current directory, e.g., in tmp or others, the full command will be,
python3 -m nkululeko.ensemble /tmp/result1 /tmp/result2 /path/to/result3

agreed, that seems like a very good idea, as several modules (i.e. augtrain) already do single nkululeko.nkululeko calls

@felixbur good!
I'll try to work on this then!
I think we don't need INI file for this module just an argument --result_csv to store the new predictions. The debug will print the process and results and save in a log file.

@felixbur sounds good!
So, I use INI file from previous experiments to calculate new prediction (methods: majority_voting, mean, max, and sum). This requires prediction file with probability as inputs. The problem that it seems we (or maybe my self only) didn't have that CSV file. I only have it when experimenting wtih ravdess with os + xgb and praat + xvm.  I think that CSV files should be always returned after each experiment right (it is different from save_test) ? So, the codes will work regardless dataset type (audformat, csv) or other parameters, but currently only for classification.

I think that CSV files should be always returned after each experiment right
sure, fine with me.
I guess it makes sense that this module requires additional functionality from   other module, i.e. the nkululeko and augtrain modules


[Clarification Request] Large messages and zmq proxy

Hi, sorry I have a bit of basic question:
I have a system in which I want to use a proxy to connect multiple clients with multiple servers. The proxy would be used to solve the discoverability problem (and perhaps in the future handle load balancing?).
However my messages are very large. Is there a simple pattern to use that would avoid the actual message content going through the proxy, but directly between the client and server that the proxy connects?

If you only want to handle discoverability, you can have a standalone registry service that returns a collection URLs, and then have your clients talk directly to them - then no 'work' messages go through the proxy

workers register themselves with the registry when they start, plus some kind of keepalive / shutdown if workers go away
clients query the registry periodically (or registry publishes updates to clients)
clients connect directly to workers

If you want the proxy to do load-balancing, that's harder. You might use your registry to implement the load balancing and on every request ask "where should I send this?" That adds a whole request-reply roundtrip to each message, increasing latency.


Remove useless and outdated changelog file

Questions
Answers

Description?
Remove useless  and outdated changelog file

Type?
improvement

BC breaks?
no

Deprecations?
no

Fixed ticket?

How to test?

Thanks for review!


Broad variables

So, what is it about?
Make it so that we can use the variables established inside of client.variables in JavaScript itself.
Example
client.variables({
  variable = "this is a variable"
})
console.log("variable")

Output
"this is a variable".

Why?
This can be quite handy in many ways as we can use it to interact with websites via a discord bot using an API wrapper.
Code of Conduct

[X] I agree to follow this project's Code of Conduct

@qhelios
client.variables({
  variable = "this is a variable"
})
console.log("variable")

this syntax is not possible in javascript but you can access variables data like its name , type and default value
use
client.variableManager.cache.get("variable_tableName")

this will return a class object
Variable {
    name: "variable",
    type: "TEXT",
    default: "this is a variable"
}

a sample example would be:
const variable = client.variableManager.cache.get("variable_main");
console.log(variable.default) // this is a variable


New EG system events for ResourceNotification and Storage

API change check
APIView has identified API level changes in this PR and created following API reviews.
com.azure:azure-messaging-eventgrid


Implementation of Ansible Molecule on AP-ALB & travis-ci integration

https://github.com/ansible/molecule
https://molecule.readthedocs.io
https://www.youtube.com/watch?v=DAnMyBZ8-Qs

The AP-ALB is an Ansible Role. And Ansible Molecule is one popular way to do unit testing of Ansible Roles. Eventually this could be added.

I guess I will rush one of the oldest issues on this repository to make easier to not break new functionality. I will delay just a bit the start of v0.9.x.
We released the v0.8.5-alpha here https://github.com/fititnt/ap-application-load-balancer/releases/tag/v0.8.5-alpha and at https://github.com/fititnt/ansible-linux-ha-cluster already have a cross-platform cluster of AP-ALB, but they are running on VPSs, Considering all the work on the #34, this short delay may be better do it now, than have to rework later and re-test on all bare VPSs.


Bug: pollApi is not cleaned up

An interval is created https://github.com/bitfocus/companion-module-boinx-mimolive/blob/main/src/api.js#L267 when setting up the connection.
This interval does not appear to be cleaned up at any point, so if the module is disabled or reconfigured it will be left running.
Additionally, should https://github.com/bitfocus/companion-module-boinx-mimolive/blob/main/src/index.js#L155 be initAPI? I dont see an implementation for initTCP anywhere

These bugs should be resolved now.


Request to verify the target subscription type to transfer EA.

Hi Team,
From the below screenshot of a page, I am confused by the sentence "Microsoft Customer Agreement or MOSP subscription"

I believe this statement should change to "Microsoft Customer Agreement with MOSP subscription".
Because, if it is "or", it includes all subscriptions that have MCA (Microsoft Customer Agreement) which includes CSP Azure Plan.
However, I have understood that any CSP subscription which is legacy or modern (Azure Plan) should follow below link, which leads to resource migration method for transfer to EA.
https://docs.microsoft.com/en-us/azure/cost-management-billing/manage/transfer-subscriptions-subscribers-csp?msclkid=0bc252acc53611eca7e52273f71cff8e#transfer-csp-subscription-to-other-offer
Moreover, from below, "Azure Plan with Pay-as-you-go rates to transfer EA" guides same as this page. But not mentioned about CSP Azure Plan.

https://docs.microsoft.com/en-us/azure/cost-management-billing/manage/switch-azure-offer#can-i-migrate-from-a-subscription-with-pay-as-you-go-rates-to-cloud-solution-provider-csp-or-enterprise-agreement-ea
It would be great if you could review this and help me to clarify the subscription type.
Thank you.
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 87b41027-2bf7-02a9-2520-58d7e9597ca3
Version Independent ID: 4315179d-6aba-2d8b-9c07-fa8f49cb0479
Content: Transfer an Azure subscription to an Enterprise Agreement
Content Source: articles/cost-management-billing/manage/mosp-ea-transfer.md
Service: cost-management-billing
Sub-service: billing
GitHub Login: @bandersmsft
Microsoft Alias: banders

Thanks for bringing this to our attention. We will investigate it further and update you shortly.

@sarahyoon Sorry for the delay. Let's take a step back. All supported transfers are listed at https://docs.microsoft.com/azure/cost-management-billing/manage/subscription-transfer#product-transfer-support. There's a link for more information for each supported transfer scenario.
You mentioned CSP legacy to EA. For that scenario, it's not supported and it’s not in the list, meaning that the transfer isn't either something that Azure support can do for you or it's a process that you must do yourself (manually moving resources).  For that scenario, the high level steps at https://docs.microsoft.com/azure/cost-management-billing/manage/transfer-subscriptions-subscribers-csp#transfer-csp-subscription-to-other-offer apply.
A MCA - individual subscription (Azure plan pay-as-you-go) to EA transfer is supported and documented at https://docs.microsoft.com/azure/cost-management-billing/manage/mosp-ea-transfer. I'll update the article's into to add clarity that the article applies to MCA - individual subscription (Azure plan pay-as-you-go MS-AZR-0017g) transfers to EA.
A legacy pay-as-you-go to EA transfer is supported and documented with the same article (https://docs.microsoft.com/azure/cost-management-billing/manage/mosp-ea-transfer).
Did I miss anything? Were all of your questions answered?

https://github.com/MicrosoftDocs/azure-docs-pr/pull/196997

Hi @bandersmsft,
Thank you for the kind support.
I have understood and thank you for clarification.
There is one offer plan is missing here, MCA - CSP (modern CSP, Azure plan) to EA Scenario which also follows CSP legacy to EA scenario.
However, since you have mentioned that you will clarify that the article applies to MCA - PAYG transfer to EA then I guess it will be all good.
As I have highlighted below "MCA or MOSP subscription" statement caused a customer confusion that any MCA subscription (including MCA - CSP) can be transferred to EA followed by this article. And this was why I have requested in the first place.

Once again, thank you for the kind help.

@sarahyoon Thanks for the reply. The updated article should get refreshed live late tonight.
#please-close


Docs: Installation (https://kpt.dev/installation/)

@dolunay1982 Can you provide some more details here?

If I understand correctly, a certain git commit breaks the https://kpt.dev/installation/ link, but now it should be fixed. @dolunay1982 if you still have the issue, you can try clearing the cache. That should help.


Update build instructions based on the v2.9 release series

The following changes were made:

Add a GitLab CI file that can be used when hosting there.
Update GitHub CI for new build flow.
Remove CentOS8 docker image (no longer supported).
Add Alma9 image.

The gitlab-registry.cern.ch/key4hep/k4-deploy/alma9-build image is used as base. There are two images generated:

mucoll-spack: Contains a spack installation.
/mucoll-spack: Contains the installation of the Muon Collider software as a spack environment.

The images are now based on the spack package distribution system using packages from the key4hep-spack and mucoll-spack repositories. The exact tested commits for each repository and spack itself are specified.
The version of spack is taken from key4hep-spack's .latest-commit file. That way we use an externally tested version.
Any patches to spack to fix packages broken outside of their control (ie: download links) are applied using a new apply_patches.sh script for both key4hep-spack and mucoll-spack. This script checks that the corresponding spack version is cloned (via .latest-commit) and runs the .cherry-pick script.
The desired spack environment is named sim and copied from mucoll-spack/tree/release/environments/mucoll-release.
The following setup scripts are available. This corresponds to the setup sued for the CERN 2023 tutorial.

/opt/setup_spack.sh: Load Spack only.
/opt/setup_mucoll.sh: Load the sim environment. Only this one is needed by most end users.

All looks good!


add rebus rave

Add rebus rave.

Pull Request Test Coverage Report for Build 666

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 87.143%

Totals

Change from base Build 514:
0.0%

Covered Lines:
158

Relevant Lines:
180

💛  - Coveralls


Move ObjectBucket and ObjectBucketClaim CRDs to owned instead of required.

This repeats the change of #424 that was undone in #517 because of problems in OLM that are fixed meanwhile.

@jarrpa @umangachapagain @nimrod-becker @jackyalbo FYI

/test ocs-operator-e2e-aws


MB-54252 Add mode to visualise cbbackupmgr stat files using cbmstatparser

After the creation of cbmstatparser (a tool to create a Prometheus TSDB containing stats from cbbackupmgr runs), the tools team decided that integrating this tool into promtimer (to visualise the aforementioned TSDB with Grafana) would provide the most utiity, as it would allow one tool to display all important statistics for a Couchbase Server instance. To this effect, a flag was added to promtimer that when used would make it run cbmstatparser to create a Prometheus TSDB, run a prometheus instance with this TSDB, and then visualise it with Grafana.

@Lackshan there are a couple of places here where we are too strict about the format of the stat filenames, similar to https://issues.couchbase.com/browse/MB-56633. I've attached a diff that fixes it, but it's just what I bodge together - hopefully you can neaten it up :)
cbm_bodge.diff.zip

@dave-finlay Thanks for your review! I've addressed your comments and run my changes by @jameseh96 who's happy with them. Would appreciate it if you could take another look at it.
@mattyhall I've changed the stat file name logic to look for the first - from the right hand side so this should no longer be an issue.

Hey Lackshan -
This is too many minor commit to merge to master for what is essentially one idea (the addition of a new type of stats source and an ability to build a dashboard against it.) Please squash all of your commits into 1 and add a nice lengthy comment explaining clearly what it is your doing. Also: don't refer to the MB as it's not helpful. Simply explain the changes that you are making.
I have a bunch more feedback on this PR which is too big and too complicated to add to the review comments here.  In future, please make sure that you are not breaking the existing use cases when you're adding new functionality to something. In any case, it's easiest for me to push an alternate PR with the changes I think you need on top of your patches. It would be good if you can merge my changes into your PR and then update your PR with all the changes needed: https://github.com/couchbaselabs/promtimer/pull/63.
Will send you a quick email too.

Hey Dave, thanks for the review. Sorry about breaking the existing functionality, I've tested my changes again and squashed the commits down as you requested. I'll ask @couchbaseEd & @almidds99 to take a look.

@dave-finlay Would appreciate a review from you as the Support Tooling team are happy with this PR.

Thanks Lackshan - appreciate the patch. It's probably going to take me a day or two to get back up-to-speed on the patch. But I have it on my todo list!

Thanks for the review @dave-finlay. I've made all the requested changes including adding the optional --cbmstatparser-path flag. I've also taken the liberty of:

Changing all copyright notices to say 2020-Present
Correcting the number of newlines between functions to comply with PEP8
Adding vscode files into the .gitignore for convenience.

Would appreciate it if you could take another look at it again.

@dave-finlay I've addressed these comments and improved both the commit message and name of this PR as suggested. Would appreciate another look from you. Thanks!

Looks good. Will merge. Thanks Lackshan!


Release PR submission failed for .NET 9 Preview 1

The release pipeline failed (internal link) in the Submit Release PR step with this error:
##[error] Element '\''PrivateSourceBuiltArtifactsUrl'\'' not found in the Versions.props file.'

The elements containing the links to the uploaded SDK were changed in https://github.com/dotnet/installer/pull/17370, but this was not reflected in the release pipeline for 9.0
PR - https://dev.azure.com/dnceng/internal/_git/dotnet-release/pullrequest/37465

PR merged, closing


Fixing security plugin archive

Description
The PR fixes the security plugin issue in the neural search build.
Premise:
While building neural search we are pulling security plugin via zip archive.
    secureIntegTestPluginArchive group: 'org.opensearch.plugin', name:'opensearch-security', version: "${opensearch_build}"

But in neural search we do not use security plugin as a compile time dependency.
How zipArchive works?
Zip Archive works by resolving all the dependencies provided in the dependencies section. opensearch-knn we use at compile time dependency and therefore we extract it as a jar in task extractKNN Jar. opensearch-ml-plugin zip we use it in bwc tests.
// In order to add the jar to the classpath, we need to unzip the
// k-NN zip and then copy it into a directory that we specify as a dependency.
task extractKnnJar(type: Copy) {
    mustRunAfter()
    from(zipTree(configurations.zipArchive.find { it.name.startsWith("opensearch-knn")}))
    into knnJarDirectory
}

Now this line(from(zipTree(configurations.zipArchive.find { it.name.startsWith("opensearch-knn")})) ) of code tries to find opensearch-security as well however we don't use it.
The fix:
Segregate the pulling of security plugin in secureIntegTestPluginArchive configuration.
Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[ ] Commits are signed as per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

BWC tests failure is expected as we do not have latest neural-search 2.12 artifact.


Support of Rocky Linux 9 with install updates

Test the deployment of PacketRusher on Rocky Linux 9 and reflect the necessary adaptations in the install guide / requirements

GPT-U kernel module does not work on recent RHEL9 kernels. -> removed the support mention and created install guide using archived rocky9 version.


update minimum required cmake version

Fixes #445
Signed-off-by: The MathWorks, Inc<EMAIL_ADDRESS>

Codecov Report

Merging #642 (f3e7c0b) into development (b088a4f) will decrease coverage by 0.75%.
The diff coverage is n/a.

@@               Coverage Diff               @@
##           development     #642      +/-   ##
===============================================
- Coverage        90.50%   89.74%   -0.76%
===============================================
  Files              250      124     -126
  Lines            13449     8240    -5209
===============================================
- Hits             12172     7395    -4777
+ Misses            1277      845     -432

Impacted Files
Coverage Δ

compendium/LogService/src/LogService.cpp
0.00% <0.00%> (-100.00%)
:arrow_down:

util/include/cppmicroservices/util/MappedFile.h
0.00% <0.00%> (-83.34%)
:arrow_down:

framework/src/bundle/BundleRegistry.cpp
80.89% <0.00%> (-11.08%)
:arrow_down:

...ork/include/cppmicroservices/detail/CounterLatch.h
87.09% <0.00%> (-6.66%)
:arrow_down:

...mework/src/service/ServiceReferenceBasePrivate.cpp
87.44% <0.00%> (-5.50%)
:arrow_down:

framework/src/service/ServiceListeners.cpp
95.32% <0.00%> (-4.68%)
:arrow_down:

...mework/include/cppmicroservices/ServiceReference.h
96.00% <0.00%> (-4.00%)
:arrow_down:

framework/include/cppmicroservices/detail/Log.h
97.22% <0.00%> (-2.78%)
:arrow_down:

framework/src/service/ServiceRegistry.cpp
91.14% <0.00%> (-2.16%)
:arrow_down:

framework/src/bundle/BundleResourceBuffer.cpp
69.35% <0.00%> (-1.85%)
:arrow_down:

... and 174 more

You are correct that CMP0065 only affects executables. I initially tried looking for a solution to only target specific executables (potentially with set_target_property), but I was unable to find what exactly to set based on the CMake documentation.
I agree that this can be done later as a follow-up task as this was already the behavior before switching the minimum CMake version.


Update opentelemetry-exporter-jaeger, ... to 1.29.0

About this PR
📦 Updates

io.opentelemetry:opentelemetry-exporter-jaeger
io.opentelemetry:opentelemetry-exporter-otlp
io.opentelemetry:opentelemetry-sdk

from 1.27.0 to 1.29.0
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "io.opentelemetry" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "io.opentelemetry" }
}]

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

Superseded by #341.


Fix: reset password

In the current implementation, the verify_password_reset_token function is used to extract the email from the token. This function is designed to return the email that was used to generate the token. However, if the token was generated using the user's ID instead of their email, this function will return the user's ID, not their email.
This is problematic because the rest of the /reset-password route expects to work with the user's email, not their ID. The get_user_by_email function is used to look up the user in the database, and this function expects an email as input. If it receives a user ID instead, it will not be able to find the user, and the password reset will fail.
Therefore, in order for the password reset to work, the token needs to be generated using the user's email, not their ID. This will ensure that the verify_password_reset_token function returns the correct email, and that the get_user_by_email function can successfully find the user in the database.

I can see that there is other functionality that probably dependant on the subject of the token being user.id.
So, perhaps better to use a get_user_by_id instead of get_user_by_email in the /reset-password route


Add i18n translations

Summary

Add translations folder structure

Each view/gem/model should have its own folder inside its corresponding
'class folder' (views/gems/models respectively), with all the translations
files inside it.
Examples provided for each 'class folder'.

Add devise translations
Update Ruby version to 2.4.0

Update Dockerfile
Update .travis.yml

Update Rails version to 5.0.1
Remove unnecessary code on the project's schema
Add new useful gems and update others
Update rubocop.yml

@MatiasComercio ping !

@epintos @francoprud @alebian @alanhala Please review it again

@epintos Squashed and rebased!

@epintos what are we waiting for here ?


Provide necessary license and documentation for envoy Jaeger tracing plugin to ensure open source designation

Title: Provide necessary license and documentation for envoy Jaeger tracing plugin to ensure open source designation
Description:

I would like to leverage the Jaeger Tracing plugin within my organization's envoy docker containers.  In order for this to be allowed, I need to provide evidence that the plugin uses a support license agreement.  I have submitted https://github.com/envoyproxy/misc/issues/1 requesting for a license to be specified and the README updated to provide a reference to the source code used to generate the plugin.

Relevant Links:

Related conversation - https://github.com/jaegertracing/jaeger-client-cpp/issues/183#issuecomment-595790140
Reference to plugin in envoy examples: https://github.com/envoyproxy/envoy/blob/main/examples/jaeger-native-tracing/Dockerfile-frontenvoy#L14-L17

cc @htuch @phlax

Any updates on this?

not sure what the license situation is exactly - i added (or maybe updated) the binary to fix an issue with abi incompatibility some time ago
the binary i added was iirc from a tetrate recipe, i think @lizan knows more about where it came from originally - the url has since been shifted to within the envoyproxy namespace, so i assume its Apache licensed - but not sure and not sure where the source/compile recipe is etc
ideally with this we add some bazel build to build this plugin in envoys ci and then we wont have to worry about this so much or the other concerns iwith hosting a binary in the repo

Yes it is Apache license. the Jaeger opentracing C++ library is already deprecated so I don't think we want to invest more in this.


Tab completion fails in certain scopes

Not sure if this has been reported, but it is a very odd specific case.
If you create a script (Untitled.ps1) and put one line in it $host.EnterNestedPrompt().
When you run the script you will enter a nested prompt, obviously, at that point if you create any variables you will not be able to tap complete to them.  You can see them with Get-VAriable and you can type them in manually to retrieve them, but tab completion fails.  This only happens with psreadline, if I remove the module while in the nestedprompt, tab completion works.  This can also affect debugging scenarios where you are nested as well.
Thanks
Bobby

This issue was moved to PowerShell/vscode-powershell#362


[Bug][rubysrc2cpg] - block parameter without name is throwing error

Describe the bug
The following code sample fails to parse
    def build(&)
        another_method_call(&)
    end

However, the below sample works.
    def build(&a)
        another_method_call(a)
    end

@karan-batavia as you resolved this one - https://github.com/joernio/joern/issues/3168. So tagging you for this ticket.
cc: @xavierpinho

@xavierpinho , this looks straightforward. I'll take this up before #3189.

Closed by #3204.

Closed by #3204.

I believe we still need to support  another_method_call(&) from the original sample though. I'm not sure how this should be modelled yet.

Closed by #3204.

I believe we still need to support  another_method_call(&) from the original sample though. I'm not sure how this should be modelled yet. For the parser though, this should be enough:
blockArgument
    :   AMP expression?
    ;

Ah, yes. I didn't take this into account. Argument name could be optional too. Will look into this.


NEORV32 Multicore processor TMR implementation

Discussed in https://github.com/stnolting/neorv32/discussions/661

Originally posted by Luperior July 31, 2023
Good afternoon everyone,
for my Master Thesis I am working on a multicore version of the Neorv32 in order to reduce the error probability due to bit flipping in the bitstream. My idea is to triplicate the CPU (done already) and then introduce a Triple Modular Redundancy "security gate" before writing data into memory. Basically I want to compare the results obtained by the three different cores and then store the one which, in case of disagreement, is most obtained (eg 2 times out of 3).
In order to do so, I modified the neorv32_cpu_bus.vhd file by adding a comparison between the result coming from the same core ALU (wdata_i) and the ones coming from the other two cores ALUs (wdata_ix and wdata_iy). Should the three CPUs all produce different results, every single one will store the data obtained by their own ALU. This is the code:
mem_do_reg: process(rstn_i, clk_i)
  begin
    if (rstn_i = '0') then
      d_bus_wdata_o <= (others => '0');
      d_bus_ben_o   <= (others => '0');
    elsif rising_edge(clk_i) then
      if (ctrl_i.bus_mo_we = '1') then
	  d_bus_ben_o <= (others => '0'); -- default
	    -- Check for a majority vote (2 out of 3 match)
		if (wdata_i = wdata_ix) or (wdata_i = wdata_iy) then
        case ctrl_i.ir_funct3(1 downto 0) is
          when "00" => -- byte
            d_bus_wdata_o(07 downto 00) <= wdata_i(7 downto 0);
            d_bus_wdata_o(15 downto 08) <= wdata_i(7 downto 0);
            d_bus_wdata_o(23 downto 16) <= wdata_i(7 downto 0);
            d_bus_wdata_o(31 downto 24) <= wdata_i(7 downto 0);
            d_bus_ben_o(to_integer(unsigned(addr_i(1 downto 0)))) <= '1';
          when "01" => -- half-word
            d_bus_wdata_o(15 downto 00) <= wdata_i(15 downto 0);
            d_bus_wdata_o(31 downto 16) <= wdata_i(15 downto 0);
            if (addr_i(1) = '0') then
              d_bus_ben_o <= "0011"; -- low half-word
            else
              d_bus_ben_o <= "1100"; -- high half-word
            end if;
          when others => -- word
            d_bus_wdata_o <= wdata_i;
            d_bus_ben_o   <= "1111";
        end case;
        elsif wdata_ix = wdata_iy then
          case ctrl_i.ir_funct3(1 downto 0) is
          when "00" => -- byte
            d_bus_wdata_o(07 downto 00) <= wdata_ix(7 downto 0);
            d_bus_wdata_o(15 downto 08) <= wdata_ix(7 downto 0);
            d_bus_wdata_o(23 downto 16) <= wdata_ix(7 downto 0);
            d_bus_wdata_o(31 downto 24) <= wdata_ix(7 downto 0);
            d_bus_ben_o(to_integer(unsigned(addr_i(1 downto 0)))) <= '1';
          when "01" => -- half-word
            d_bus_wdata_o(15 downto 00) <= wdata_ix(15 downto 0);
            d_bus_wdata_o(31 downto 16) <= wdata_ix(15 downto 0);
            if (addr_i(1) = '0') then
              d_bus_ben_o <= "0011"; -- low half-word
            else
              d_bus_ben_o <= "1100"; -- high half-word
            end if;
          when others => -- word
            d_bus_wdata_o <= wdata_ix;
            d_bus_ben_o   <= "1111";
        end case;
        else
          -- No majority vote, there's a disagreement
        case ctrl_i.ir_funct3(1 downto 0) is
          when "00" => -- byte
            d_bus_wdata_o(07 downto 00) <= wdata_i(7 downto 0);
            d_bus_wdata_o(15 downto 08) <= wdata_i(7 downto 0);
            d_bus_wdata_o(23 downto 16) <= wdata_i(7 downto 0);
            d_bus_wdata_o(31 downto 24) <= wdata_i(7 downto 0);
            d_bus_ben_o(to_integer(unsigned(addr_i(1 downto 0)))) <= '1';
          when "01" => -- half-word
            d_bus_wdata_o(15 downto 00) <= wdata_i(15 downto 0);
            d_bus_wdata_o(31 downto 16) <= wdata_i(15 downto 0);
            if (addr_i(1) = '0') then
              d_bus_ben_o <= "0011"; -- low half-word
            else
              d_bus_ben_o <= "1100"; -- high half-word
            end if;
          when others => -- word
            d_bus_wdata_o <= wdata_i;
            d_bus_ben_o   <= "1111";
        end case;
        end if;
	  end if;
    end if;
  end process mem_do_reg;

Clearly, in order to make all of this possible, I added two extra IN signals for each CPU (wdata_ix and wdata_iy) and modified the "rs2" signal to be (IN)OUT since it represents the ALU outcome and has to be sent to the other cores. So for example the first core takes in cpu2.rs2 and cpu3.rs2 and outputs cpu1.rs2 and so on... however it does not work.
I am using Vivado to deploy it on a XILINX PYNQ Z2 FPGA and Synthesis and Implementation complete without any major warning (nor error obviously), and the Implemented Design makes total sense. I already tested the code and bistream end everything works fine without the TMR implementation so it shouldn't be a problem caused by the core triplication.
How is it possible then that I obtain nothing coming from the UART0 when I should see the first CPU output (after being "TMR-checked")?
Thank you all in advance!
Edit: I also tried other different approaches, like using Shared Variables or istantiating a new component which played the role of the TMR majority voter. However, let alone that neither of them worked, the first one is likely more subject to errors due to bit flipping and the second one (probably) had synchronisation issues since the values were available a few clocks after they were needed.
Should you have any other suggestions I am open to hear them, thanks!
ISSUE UPDATE
I am opening an Issue starting from the discussion since I noticed something weird in the Implemented Design Netlist (picture):

Despite being instatiated 3 times in the code (and in the Vivado hierarchy), the neorv32_busswitch is only created once (blue);
Same thing goes for the icache component (red), in contrast with the dcache which is correctly istantiated three times;
Only the first core has an ALU: the second and third do not possess one (green).

How is all of this possible? What is going on? I guess this is why I see nothing on wdata_ix and wdata_iy and so on...

I recommend to start with a setup without any caches. These can be added later after your bus modifications are done (and verified).

Despite being instatiated 3 times in the code (and in the Vivado hierarchy), the neorv32_busswitch is only created once (blue);

I think this might be caused by incomplete signal/bus assignments, e.g. the CPU's instruction buses are not correctly mapped resulting in a removal of the i-cache.
Do you have your source code in a public repository? Then we could have a closer look at it.

I recommend to start with a setup without any caches

Enabling them unfortunately proved to be necessary as discovered here (https://github.com/stnolting/neorv32/issues/655#issuecomment-1655225209).

Do you have your source code in a public repository?

Here is the link (https://www.dropbox.com/scl/fo/cy6xkl9ys2hpzcbbpilh7/h?rlkey=30c11po4r3xcbzh36btxbwmar&dl=0) containing all the 3 files I modified.
I also quote your words from here (https://github.com/stnolting/neorv32/discussions/661#discussioncomment-6608786) : "Btw, you are building a setup with three identical cores doing the same stuff at the same time. There is a (tiny?) chance that the synthesis tool is smart enough to identify this redundancy removing all but one cores."
I guess this may just be the case but, if this is really what happens, how can I fix it? After searching online it appears that Vivado optimization can't be disabled, but there must be a way to obtain redundancy in my design if that is what I really wish...

Enabling them unfortunately proved to be necessary as discovered here (https://github.com/stnolting/neorv32/issues/655#issuecomment-1655225209).

I still think this is just a wiring issue 😉

Here is the link (https://www.dropbox.com/scl/fo/cy6xkl9ys2hpzcbbpilh7/h?rlkey=30c11po4r3xcbzh36btxbwmar&dl=0) containing all the 3 files I modified.

I just scrolled through your neorv32_top.vhd file. core_req2 and core_req3 are driven by the according core-complexes but they are not connected to any module. That's why synthesis will trim all the according logic. All three core_req buses need to combined into a final SoC bus.
That is what I was suggesting in #661: just add another bus module (the TMR controller) and connect these three buses to it. The module makes the majority vote and then forwards the request(s) via single/unified system bus to the rest of the processor.

That is what I was suggesting in #661: just add another bus module (the TMR controller) and connect these three buses to it. The module makes the majority vote and then forwards the request(s) via single/unified system bus to the rest of the processor.

So what you're suggesting is to implement the TMR verification module (let's say) in the neorv32_intercon file, gather the three core_reqX and then output what is needed for the neorv32_busswitch component right? This way I'd have only one bus mux and core_req2 and core_req3 would be actually connected to an instanced module.
There is one thing though that's bothering me, wouldn't I add a 1-T_clk delay?

That's right. Add a new TMR module to the neorv32_intercon.vhd file that takes care of the majority vote. This is what the entity of that module might look like:
entity neorv32_bus_tmr is
  port (
    -- global control --
    clk_i        : in  std_ulogic;
    rstn_i       : in  std_ulogic;
    -- core complex ports --
    core_a_req_i : in  bus_req_t;
    core_a_rsp_o : out bus_rsp_t;
    core_b_req_i : in  bus_req_t;
    core_b_rsp_o : out bus_rsp_t;
    core_c_req_i : in  bus_req_t;
    core_c_rsp_o : out bus_rsp_t;
    -- system port --
    sys_req_o    : out bus_req_t;
    sys_rsp_i    : in  bus_rsp_t
  );
end neorv32_bus_tmr;

Connect your three core complexes to that module and wire the system port to the processor's GATEWAY module.
Inside the TMR module you just basically just need to gate the sys_req_o.we signal. You can do that in an asnychronous way (no need to register that) so you won't have any additional delay - we are doing the same in the reservation set controller.
But even if you add one or more register stages - that should not hurt too much because of the CPU caches.

Inside the TMR module you just basically just need to gate the sys_req_o.we signal. You can do that in an asnychronous way (no need to register that) so you won't have any additional delay - we are doing the same in the reservation set controller.

This is how I decided to handle things, starting from your entity declaration:
architecture neorv32_bus_tmr_rtl of neorv32_bus_tmr is
begin
  write_en: process(core_a_req_i.we, core_b_req_i.we, core_c_req_i.we)
  begin
    if (core_a_req_i.we = '1' and core_b_req_i.we = '1' and core_c_req_i.we = '1') then
	-- Check for a majority vote (2 out of 3 match)
        if (core_a_req_i.data = core_b_req_i.data) or (core_a_req_i.data = core_c_req_i.data) then
          sys_req_o <= core_a_req_i;
        elsif core_b_req_i.data = core_c_req_i.data then
          sys_req_o <= core_b_req_i;
        else
        -- No majority vote, there's a disagreement
          sys_req_o <= core_a_req_i;
        end if;
	core_a_rsp_o <=  sys_rsp_i;
	core_b_rsp_o <=  sys_rsp_i;
	core_c_rsp_o <=  sys_rsp_i;
	end if;
end process write_en;
end architecture neorv32_bus_tmr_rtl;

I then connected the system ports to the host ports of the gateway module.
Now when I compile everything on Vivado the obtained design makes much more sense, with ALUs and busswitches actually present and I have to thank you a lot for that. However my program still doesn't work, and IMEM and DMEM are still instantiated only once. Did I miss or misunderstand something?
I am thinking I may be needing three gateway modules (to attach IMEMs and DMEMs) but then wouldn't I be missing the point of unifying the three core requests in the TMR module? Let alone that probably I'd have concurrent signal assignments errors.
Thank you in advance, I am sorry to bother you this much but I was left totally unsupervised and/or assisted for this Thesis...

This is how I decided to handle things, starting from your entity declaration:

Look good, but there are some issues here:

the sensitivity list is incomplete: you are using several signals (e.g. core_a_req_i.data) as input for the process logic - not just core_a_req_i.we, core_b_req_i.we, core_c_req_i.we. Better use the the entire requests buses in the list:

write_en: process(core_a_req_i, core_b_req_i, core_c_req_i)

sys_rsp_i is not in the sensitivity list. Better make this concurrent (outside of the process):

...
    end if;
  end process write_en;

  core_a_rsp_o <=  sys_rsp_i;
  core_b_rsp_o <=  sys_rsp_i;
  core_c_rsp_o <=  sys_rsp_i;

I am not really sure, but I think there might be one case missing in your majority logic: 😅

A.data = B.data OR A.data = C.data: SYS <= A
B.data = A.data OR B.data = C.data: SYS <= B
C.data = A.data OR C.data = B.data: SYS <= C

A general question regarding your TMR concept: Do you just want to check the actual data or do you also want to check the remaining bus signal? For instance, there could also be a discrepancy in the address lines.

I then connected the system ports to the host ports of the gateway module.

Sounds good.

Now when I compile everything on Vivado the obtained design makes much more sense, with ALUs and busswitches actually present and I have to thank you a lot for that.

:+1:

However my program still doesn't work, and IMEM and DMEM are still instantiated only once. Did I miss or misunderstand something?

Well, it depends on your system architecture. I thought you want to build a uniform system based on three cores that share all the memory-mapped modules. Hence, you only have one IMEM, one DMEM, one peripheral X, one peripheral Y, etc.

the sensitivity list is incomplete: you are using several signals (e.g. core_a_req_i.data) as input for the process logic - not just core_a_req_i.we, core_b_req_i.we, core_c_req_i.we. Better use the the entire requests buses in the list:

Or even better, use the keyword all in the sensitivity list of combinatorial processes:
process (all) is
begin
...
end process;

First of all sorry for getting back to you so late, it was my summer-break week. Now, when it comes to this project:

the sensitivity list is incomplete: you are using several signals (e.g. core_a_req_i.data) as input for the process logic - not just core_a_req_i.we, core_b_req_i.we, core_c_req_i.we. Better use the the entire requests buses in the list:

Thank you, I changed that and tried both this way and with "all" in the process sensitivity list but none of them worked.

sys_rsp_i is not in the sensitivity list. Better make this concurrent (outside of the process):

Thank you again for that.

I am not really sure, but I think there might be one case missing in your majority logic: 😅

I tried with a couple examples and I'm not sure it's wrong, but eventually I'll try and test it more deeply.

A general question regarding your TMR concept: Do you just want to check the actual data or do you also want to check the remaining bus signals? For instance, there could also be a discrepancy in the address lines.

I'd like to start with a functioning system that checks only what is supposed to be stored, then should I have enough time I'd be happy to improve the verification method.

I thought you want to build a uniform system based on three cores that share all the memory-mapped modules. Hence, you only have one IMEM, one DMEM, one peripheral X, one peripheral Y, etc.

You're right, thank you once more...
Despite all this, however, it still doesn't work. It looks like everything that's needed is actually implemented in the design, but the test program still does not produce any output. What else could I try?

Or even better, use the keyword all in the sensitivity list of combinatorial processes:

Thank you for the nice suggestion!

Update
I tried commenting the whole process containing the TMR verification code (pasted below) and just assigning, outside the process, sys_req_o to the different core_X_req_i and it worked for all three cores. I'm then guessing it must be a problem of the first IF condition
  write_en: process(core_a_req_i, core_b_req_i, core_c_req_i, clk_i, rstn_i, sys_rsp_i)
  -- write_en: process(all) -- not supported before VHDL 2008 in Vivado
  begin
    if (core_a_req_i.we = '1' and core_b_req_i.we = '1' and core_c_req_i.we = '1') then   -- unreachable
		-- Check for a majority vote (2 out of 3 match)
        if (core_a_req_i.data = core_b_req_i.data) or (core_a_req_i.data = core_c_req_i.data) then
          sys_req_o <= core_a_req_i;
        elsif core_b_req_i.data = core_c_req_i.data then
          sys_req_o <= core_b_req_i;
        else
        -- No majority vote, there's a disagreement
          sys_req_o <= core_a_req_i;
        end if;
    else  -- solved the unreachable clause issue
        sys_req_o <= core_b_req_i;
    end if;
end process write_en;

since adding the else branch solved it. So I'm pretty sure the problem is that the three cores do not share a time instant when all three .we signals are asserted, and as a consequence sys_req_o was left undefined. However, in this way, the TMR verification is not performed since this else statement is always executed. How could I solve it?

and just assigning, outside the process, sys_req_o to the different core_X_req_i and it worked for all three cores.

That sounds fine.

So I'm pretty sure the problem is that the three cores do not share a time instant when all three .we signals are asserted, or at least it doesn't happen every time the process is called (clearly) and as a consequence sys_req_o was left undefined.

The CPU does not provide any kind of "lock-step" mechanism to synchronize with other cores so we'll need to ensure synchronous execution via a different mechanism. Basically, all three cores are identical - so they should behave identical, too.
What kind of boot scenario do you use? I assume the cores are booting from the pre-initialized IMEM - so no bootloader and no on-chip debugger, right?

However, in this way, the TMR verification is not always performed since this else statement is almost always executed. How could I solve it?

This is related to a more general question: what happens if - for example - one core goes crazy? Some time ago I worked on a similar TMR setup also implementing three cores. In case of one core going rogue the according core was disabled and the remaining one were informed via an IRQ.

Edit: I checked and saw that the .we signals are defined as "single shot", so I may need to extend their duration or find another way to keep track of their activation. Do you have any suggestions? Where can I find the exact behaviour of these signals?
Thank you in advance.

These "single-shot" signals have to be single-shot. If you extend them, e.g. asserting them for several cycles, then you would trigger several read/write transactions, which would compromise data integrity.
The CPU/processor bus interface is described in the data sheet: DOC: Bus Interface

Basically, all three cores are identical - so they should behave identical, too.

My point exactly, thank you.

I assume the cores are booting from the pre-initialized IMEM - so no bootloader and no on-chip debugger, right?

Yes, you're right.

This is related to a more general question: what happens if - for example - one core goes crazy?

I see your point, an else statement is needed to handle strange and unpredictable behaviour.
Looking at the IF condition if (core_a_req_i.we = '1' and core_b_req_i.we = '1' and core_c_req_i.we = '1') then I tried to substitute the and gates with or ones, and even using rising_edge(core_X_req_i.we) to see if anything changed in the behaviour but got nothing. It looks like it never enters the if branch but that would be impossible since the process is triggered (confirmed by the fact that the else condition, when present, solves everything despite making the TMR gate pointless). At least sometimes the .we signals must reach value 1 in order to trigger it, so how come it never enters the IF branch even with the or logic? Or maybe it enters it but just not enough times to make the system work? Like when the IF condition is false it may stilll need some signal to be assigned to sys_req_o but then it would TMR check only some times and not for every data (as seen with the else branch for example) ...

Your TMR logic can only be active if all three cores issue a write request (via .we) at the same time. But there might be the case where - for example - the address bus of one core is corrupted during the current write request. So why not check all request bus signals for a match?
I am not sure if VHDL can compare records, so I would use a custom comparison function. Maybe something like this:
  function cmp_bus_req_f(x : bus_req_t; y : bus_req_t) return boolean is
  begin
    if (x.addr = y.addr) and
       (x.data = y.data) and
       (x.ben  = y.ben)  and
       (x.we   = y.we)   and
       (x.re   = y.re)   and
       (x.src  = y.src)  and
       (x.priv = y.priv) and
       (x.rvso = y.rvso) then
      return true;
    else
      return false;
    end if;
  end function cmp_bus_req_f;

With this function you can compare the entire request buses to check for an actual majority:
tmr: process(core_a_req_i, core_b_req_i, core_c_req_i)
begin
  if (cmp_bus_req_f(core_a_req_i, core_b_req_i) = true) or
     (cmp_bus_req_f(core_a_req_i, core_c_req_i) = true) then
    sys_req_o <= core_a_req_i;
    tmr_err   <= '0';
  elsif (cmp_bus_req_f(core_b_req_i, core_a_req_i) = true) or
        (cmp_bus_req_f(core_b_req_i, core_c_req_i) = true) then
    sys_req_o <= core_b_req_i;
    tmr_err   <= '0';
  elsif (cmp_bus_req_f(core_c_req_i, core_a_req_i) = true) or
        (cmp_bus_req_f(core_c_req_i, core_b_req_i) = true) then
    sys_req_o <= core_c_req_i;
    tmr_err   <= '0';
  else -- discrepancy detected
    sys_req_o <= req_terminate_c; -- no system bus access is performed at all
    tmr_err   <= '1';
  end if;
end process tmr;

The tmr_err signal is set when there is a discrepancy - but ignore this signal for the moment.
To ensure that all three cores are in sync you can do a simulation and inspect all three request buses (core_a_req_i, core_b_req_i, core_c_req_i) inside a waveform.

Thank you so much, it is now actually working! What's more, I only ran a quick simulation for now but it looks like the error rate dropped from over 50% (single core) to about 25% (triple core with TMR verification): it really is amazing!
I only have another question, when I now implemented the new design on Vivado it gave me this critical warning "The design failed to meet the timing requirements" . I don't remember setting any time requirement or constraint, is it something I should be worried about? Can it be fixed? Or can I ignore it given that everything seems to be working more than fine?
Below is a more detailed screenshot of the issue.

1.2 ns can certainly not be ignored. For testing you might ignore a few ps
(not ns!) of negative slack, but certainly never for production builds. You
will have to either lower the clock frequency or fix your critical timing
paths, or play with optimization settings to achieve better results. This
is a no-go.

Thank you so much, it is now actually working!

Great to hear! 🎉

What's more, I only ran a quick simulation for now but it looks like the error rate dropped from over 50% (single core) to about 25% (triple core with TMR verification): it really is amazing!

What do you mean with error rate? Do you actually simulate faults in one ore more cores?

I only have another question, when I now implemented the new design on Vivado it gave me this critical warning "The design failed to meet the timing requirements" . I don't remember setting any time requirement or constraint, is it something I should be worried about? Can it be fixed? Or can I ignore it given that everything seems to be working more than fine?
Below is a more detailed screenshot of the issue.

Maybe you did not set an explicit timing constraint, but a PLL or DCM might add an "implicit" timing constraint. How do you generate the core's clock signal? Do you use a PLL for that?
The timing results looks quite... bad... very bad... 😅 Please check the timing reports for the critical path. I think the comparator logic might be a problems here, so maybe you should add at least one register stage to the system bus:
tmr: process(rstn_i, clk_i)
begin
  if (rstn_i) then
    sys_req_o <= req_terminate_c;
    tmr_err   <= '1';
  elsif rising_edge(clk_i) then
    if (cmp_bus_req_f(core_a_req_i, core_b_req_i) = true) or
       (cmp_bus_req_f(core_a_req_i, core_c_req_i) = true) then
      sys_req_o <= core_a_req_i;
      tmr_err   <= '0';
    elsif (cmp_bus_req_f(core_b_req_i, core_a_req_i) = true) or
          (cmp_bus_req_f(core_b_req_i, core_c_req_i) = true) then
      sys_req_o <= core_b_req_i;
      tmr_err   <= '0';
    elsif (cmp_bus_req_f(core_c_req_i, core_a_req_i) = true) or
          (cmp_bus_req_f(core_c_req_i, core_b_req_i) = true) then
      sys_req_o <= core_c_req_i;
      tmr_err   <= '0';
    else -- discrepancy detected
      sys_req_o <= req_terminate_c; -- no system bus access is performed at all
      tmr_err   <= '1';
    end if;
  end if;
end process tmr;

Obviously, this will increase the latency but that should not be too bad as you have the caches enabled.

1.2 ns can certainly not be ignored. For testing you might ignore a few ps (not ns!) of negative slack, but certainly never for production builds. You will have to either lower the clock frequency or fix your critical timing paths, or play with optimization settings to achieve better results. This is a no-go.

Thank you for explaining that to me!

What do you mean with error rate? Do you actually simulate faults in one ore more cores?

I usually simulate N faults in the active parts of the bitstream (after "seeing" an image of it), and then test the system 10000 times to evaluate the error rate (each time with different flipped bits). Comparing the new result with the old one, at least when it comes to 30 faults which was my first choice, the error rate dropped from 50% to 25%.

How do you generate the core's clock signal? Do you use a PLL for that?

I left untouched the default clock generation.

I think the comparator logic might be a problems here, so maybe you should add at least one register stage to the system bus

Thank you, I just tested it and it all works fine without the timing issue!
I really can't thank you enough, I'll make sure to quote you in my acknowledgements section. Also, should it be possible to donate something to your for your work and effort, I'd be more than happy to!

Thank you, I just tested it and it all works fine without the timing issue!

That's great! 🚀
So, can we close this issue?

I really can't thank you enough

You're welcome.

Comparing the new result with the old one, at least when it comes to 30
faults which was my first choice, the error rate dropped from 50% to 25%.

And the next time it will be 60% and some other time 5%. I think changing
an FPGA design like this is too dependent on routing and mapping. Maybe I
am wrong on this, but it doesn't sound like a useful measure at all.
I may have missed the entire purpose of this thread though. I lurk in here
and sometimes pick things up. :-)


Conflict on garm-cli commands that already have -f defined

https://github.com/cloudbase/garm/blob/54aa3815dfaa03775188077d34b9d3ec3f5b103d/cmd/garm-cli/cmd/root.go#L57
This persistent flag added to all commands for the new json format feature is breaking commands that already had an "f" option, like init. Most likely will also affect runner delete due to force-remove-runner.
Error:
panic: unable to redefine 'f' shorthand in "init" flagset: it's already used for "full-name" flag

:melting_face:
Will fix in the morning. I have a new found respect for the curl project and their many command line options that do not overlap.


update Ripple License 2019

Fix license of use,
update 2019;
Format ISO 8869-1;
in Memoriam Guto Schiavon

R.I.P pioneer and friend.
#ripGUTO

Thank you for your submission. It will be reviewed soon and submitted for processing in CI.

You might want to clean up that commit message which contains unrelated stuff and fix the spelling of the project too.


Parsing error: The keyword 'interface' is reserved on d.ts file

First, some env info (taken from VS Code):
Version: 1.30.1 (system setup)
Commit: dea8705087adb1b5e5ae1d9123278e178656186a
Data: 2018-12-18T18:12:07.165Z
Electron: 2.0.12
Chrome: 61.0.3163.100
Node.js: 8.9.3
V8: 6.1.534.41
OS: Windows_NT x64 10.0.17134

XO-specific info:
xo: 0.23.0
samverschueren.linter-xo: 2.3.2

Now to the problem.
I noticed that with xojs/xo#348 xo did indeed have problems with typescript files.
So from what I gathered in that issue the linting for ts files has been disabled.
And indeed running $ npx xo on the project yields no errors (the *.d.ts file seems (to me) ignored from linting).
But this extension really likes typescript files, so it tries to lint it regardless 😆.
Searching for issues of a similar kind, I found that the solution provided in #53 works for me too.
For reference, in the package.json file I added the following snippet (I have a single typescript definition file):
    "xo": {
        "ignores": [
            "*.d.ts"
        ]
    }

Finally, the question: could the extension ignore typescript files just as the xo CLI seems to do?
FWIW I may be thinking the wrong thing on the xo CLI of course.
If you need a repository for reproducing the "error", feel free to ask me and I'll gladly provide you the one I am using.

@niktekusho are you still having an issue?

stale


Java 8

At some point we want to switch to Java 8.

test with Oracle JDK and OpenJDK.
test Gradle compatibility
update GUI to JavaFX 8
update findbugs

Technically we're now live with Java 8 mandatory. Any additional tweaks we need to apply?
We could move this to the (closed) 2.0.0 milestone if not and maybe rename 3.0.0 since it isn't Java 8 anymore.

You have a point here :stuck_out_tongue_winking_eye:


Generate a NuGet.config file with resolved properties when publishing a script

Motivations:

I want to publish a script file referencing a nuget package in a local feed. (using the #r "nuget: package, version" syntax)

Current state:

The -soption to add NuGet feed doesn't work with publish and is not enough: even if it worked, the nuget restore of the generated project would pick the package from the local feed and decompress it in the global NuGet cache.

This was avoided by using a NuGet.config file in the solution containing the .csx script files.
Solution:

By resolving all NuGet settings affecting the script file and generating a NuGet.config file with those properties for the generated csproj.

With such config file, all settings are also applied during the build steps of the script file.

@fredpointzero Rebased. Could you add a test to back up this new functionality ? 😎

@seesharper Thanks for the update, I'll add the test.

maybe a better solution would be to copy all dependencies to the DLL output folder like we do with an executable? That way, the script would become independent of the nuget cache. With the current solution (both on master and in this PR), once nuget cache is deleted, running from the DLL will fail.

@filipw We actually do copy deps to the output folder to ensure correctness for platform specific libraries
https://github.com/filipw/dotnet-script/blob/fed459a52878ae4cc45656a113bd5688425e9ce6/src/Dotnet.Script.Core/ScriptPublisher.cs#L135
So it should be possible to run with these deps instead of the ones from the NuGet cache.

@seesharper I added the tests as requested, and they are all green.


Bug Fixed

📊 Metadata *
Bounty URL: https://huntr.dev/bounties/1-npm-private-ip
⚙ Description *

The is-ip NPM module was not functioning properly to validate the IP address. So replaced that module with ip-regex module.
Since the netmask was not properly validating the subnet properly I made a custom regex to check if the IP is private or not.

💻 Technical Description *
Just fixed the subnet mask check and add one more step validation if its false.
🐛 Proof of Concept (PoC) *
var privateIp = require("private-ip")
console.log(privateIp('<IP_ADDRESS>')); // returns false

🔥 Proof of Fix (PoF) *
import isPrivate from './'
console.log(`Is Private <IP_ADDRESS> : ${isPrivate('<IP_ADDRESS>')}`);

👍 User Acceptance Testing (UAT)

👋 Hello, @frenchbread. @Aravindha1234u has opened a PR to us with a fix for a potential vulnerability in your repository. To view the vulnerability, please refer to the bounty URL in the first comment, above. If you want this fix in your repository, a PR will automatically open once you comment:
@huntr-helper - LGTM

☎ Need further support?
Come and join us on our community Discord!

❓@frenchbread - want more fixes like this?
Copy this snippet into your README.md for more vulnerability fixes in the future:
[![huntr](https://cdn.huntr.dev/huntr_security_badge_mono.svg)](https://huntr.dev)

Hi @Aravindha1234u,
Thanks for your research & and provided patch. We've been discussing this issue with @MrgSub and was about to go patching ip-regex.
Let me test this PR & I'll get back to you.

@huntr-helper - LGTM


[Event Request] codeunit 5750 "Whse.-Create Source Document" - Event for procedure PurchLine2ReceiptLine

Can we get the following events for the "Whse.-Create Source Document" Codeunit: OnPurchLine2ReceiptLineOnAfterUpdateReceiptLine
    procedure PurchLine2ReceiptLine(WhseReceiptHeader: Record "Warehouse Receipt Header"; PurchLine: Record "Purchase Line"): Boolean

        [...]
            SetQtysOnRcptLine(WhseReceiptLine, Abs(PurchLine.Quantity), Abs(PurchLine."Quantity (Base)"));
            OnPurchLine2ReceiptLineOnAfterSetQtysOnRcptLine(WhseReceiptLine, PurchLine);
            "Starting Date" := PurchLine."Planned Receipt Date";
            if "Location Code" = WhseReceiptHeader."Location Code" then
                "Bin Code" := WhseReceiptHeader."Bin Code";
            if "Bin Code" = '' then
                "Bin Code" := PurchLine."Bin Code";
            UpdateReceiptLine(WhseReceiptLine, WhseReceiptHeader);
            ///
            OnPurchLine2ReceiptLineOnAfterUpdateReceiptLine(WhseReceiptLine, WhseReceiptHeader); ///NEW
            ///
            CreateReceiptLine(WhseReceiptLine);
            OnAfterCreateRcptLineFromPurchLine(WhseReceiptLine, WhseReceiptHeader, PurchLine);
            exit(not HasErrorOccured);
        end;
    end;

    [IntegrationEvent(false, false)]
    local procedure OnPurchLine2ReceiptLineOnAfterUpdateReceiptLine(var WhseReceiptLine: Record "Warehouse Receipt Line"; var WhseReceiptHeader: Record "Warehouse Receipt Header")
    begin
    end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.