[ci] Check and update the hyperdebug firmware before running tests

This PR fixes the nightlies due to an older version on the CI hypedebug boards.

Does opentitantool or the hyperdebug firmware have some mechanism for avoiding going through an unnecessary erase cycle? (i.e. if the firmware version matches or if the flash page matches, it doesn't bother erasing, protecting against wasted cycles)
Even without that, this is fine for nightly, though. The flash should have plenty of life at a rate of once per day.

Yes, it checks the current version before flashing a new one.

Let's wait for the CI to pass. I would like to see a complete run with an upgrade to confirm that the trick of running the command twice works.

@pamaury, Ci has passed.

@pamaury @engdoreis, are the failures in this run just flaky tests?

yes

We probably need to work in transport init after the firmware update is done (or make it part of tests).
Also, shall we add this to the hyper310 tests that run on PRs now?

We probably need to work in transport init after the firmware update is done (or make it part of tests).
Also, shall we add this to the hyper310 tests that run on PRs now?

I added to the hyper310 that run on every PR as well.
The transport init will be added by another PR.


Comments on M.Sc project

Well done with your deep learning algorithm!
I thought of a simpler U-Net architecture for image segmentation similar to an x-ray lung cancer detector introduced by the "AI in medicine" Coursera course; although I like your ConvNet setup the softmax classifier (I hope; I can't open your paper because of its size).
Good luck with work or a Ph.D.!

Hi Anri, thanks for the comment, I appreciate it! My project colleague explored using U-Net for image segmentation, you might want to check it out.
You can try downloading the paper through my website at the very bottom if you're interested http://www.adam.jaamour.com/

I have just read most of the 14,345 words, and it is overall fantastic. In fact, I thought a master's dissertation will be overwhelming (to a freshman at least), but it is explained and described so well that I could follow along. I predict this is the result of great writing!
What I learned:
(1) This paper bore down to fundamentals, even techniques like regularization (and dropout), data augmentation, and transfer learning. If you describe gradient descent it could be a full overview of machine learning :-)
(2) This paper took ethical considerations seriously; I do not know if this is common across researchers good and bad, but I respect it highly.
(3) You used imageNet for transfer learning and built your own classifier on top of it with a softmax for 3 classifications (although this is common it is the first time I see it implemented in an M.Sc. dissertation).
(4) You chose TensorFlow over Pytorch because it is older and has a larger community to help you where you get stuck. This is surprisingly clever as my naive reaction would have been "Pytorch, newer and shiny. Let's use it".
Selfish outtakes: I now understand what a master's dissertation involves and how little I know.
Lastly, I am a big fan of your website.

Thank you very much for all the comments, I really appreciate them! Ethical considerations are always very important, especially  when dealing with data like this! I do hope it is standard across all researches 😄
PS: I also like your website, it has cool features!


Uncaught Exception: Unknown system error -122: Unknown system error -122, write

An uncaught exception was reported.
Info:
OS: linux
Arch: x64
GPMDP Version: 3.1.0
Time: Thu Jun 02 2016 14:29:08 GMT 0100 (BST)
Error:
Unknown system error -122: Unknown system error -122, write
Error: Unknown system error -122: Unknown system error -122, write
    at Error (native)
    at Object.fs.writeSync (fs.js:706:20)
    at Object.fs.writeFileSync (fs.js:1244:24)
    at PlaybackAPI._save (/usr/share/google-play-music-desktop-player/resources/app/build/main/utils/PlaybackAPI.js:92:22)
    at PlaybackAPI.setTime (/usr/share/google-play-music-desktop-player/resources/app/build/main/utils/PlaybackAPI.js:147:12)
    at EventEmitter.<anonymous> (/usr/share/google-play-music-desktop-player/resources/app/build/main/utils/PlaybackAPI.js:56:15)
    at emitTwo (events.js:87:13)
    at EventEmitter.emit (events.js:172:7)
    at EventEmitter.<anonymous> (/usr/share/google-play-music-desktop-player/resources/atom.asar/browser/api/web-contents.js:134:25)
    at emitTwo (events.js:87:13)

This issue was created automatically inside the uncaughtException handler

Pressed multimedia key "play" button on my keyboard.
Music started
Message about error appeared.

@jostrander Linux error code?  I don't recognise it

Yeah I think its a standard kernel error message, @JacopoGobbi what kernel version are you running?

@jostrander I think it was 3.16.0-65-generic

After extensive Googling 😆
I have determined that this error is due to a temporary disk error.  I.e. Nothing to do with this program but an underlying filesystem access thing broke.


Integrating GraphQL in your Django application #2313

Quick initial notes - the review was great - it was very smooth for me to read through.
Some very MINOR edits i added and made - the more important ones are the small minor grammatical errors I caught - if this was to be published w/o me looking at it - those minor ones would be bad to have.
The others were more formatting - and again - that will be easier with the preview function.
minor edits for flow and format
cc  @Anitaachu - great work - your tutorials are always so easy to follow along - looking forward to more great articles.
I moved the files to a new pr to avoid merge conflicts - be sure to do a git pull on your forked repo to get the lates repo changes 🚀
cc @ahmadmardeni1
cc @zolomohan

#2313


the trade is slow

I spent too much time doing a transaction, that's depressing, I hope that can be fixed,thanks!

Hi @jerseyhan23, could you please describe the problem in more detail?

Hey @jerseyhan23, if you used Argent/ZigZag please reach out to them in case of issues, otherwise talk to us on Discord or https://community.zksync.io/.


/mysql_init.sh: Permission denied

Hello,
As I was trying to use the 2004-php8 version, MySQL init script is failing with a permission denied error (logs below).
PS C:\Users\julie> docker run -p "80:80" -v ${PWD}/Downloads/app:/app mattrayner/lamp:latest-2004-php8
WARNING: The requested image's platform (linux/arm64) does not match the detected host platform (linux/amd64/v3) and no specific platform was requested
Updating for PHP 8.0
Replacing CLI php.ini values
Editing APACHE_RUN_GROUP environment variable
Editing phpmyadmin config
Setting up MySQL directories
Allowing Apache/PHP to write to the app
Allowing Apache/PHP to write to MySQL
Editing MySQL config
=> An empty or uninitialized MySQL volume is detected in /var/lib/mysql
=> Installing MySQL ...
=> Done!
/run.sh: line 109: /mysql_init.sh: Permission denied
Starting supervisord
2024-05-27 08:29:50,056 CRIT Supervisor is running as root.  Privileges were not dropped because no user is specified in the config file.  If you intend to run as root, you can set user=root in the config file to avoid this message.
2024-05-27 08:29:50,060 INFO Included extra file "/etc/supervisor/conf.d/supervisord-apache2.conf" during parsing
2024-05-27 08:29:50,062 INFO Included extra file "/etc/supervisor/conf.d/supervisord-mysqld.conf" during parsing
2024-05-27 08:29:50,102 INFO RPC interface 'supervisor' initialized
2024-05-27 08:29:50,103 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2024-05-27 08:29:50,106 INFO supervisord started with pid 1
2024-05-27 08:29:51,127 INFO spawned: 'apache2' with pid 117
2024-05-27 08:29:51,149 INFO spawned: 'mysqld' with pid 119
2024-05-27 08:29:52,732 INFO success: apache2 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2024-05-27 08:29:52,733 INFO success: mysqld entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)

After investigating, it seems that the script is missing run permissions, a command like : chmod +x /mysql_init.sh seems to fix it in the shell of the container.

Hi, @julienberton!

After investigating, it seems that the script is missing run permissions, a command like : chmod +x /mysql_init.sh seems to fix it in the shell of the container.

Good catch!
https://github.com/mattrayner/docker-lamp/blob/fc1dd3404cca8e224dbefaad6a14e77b4b7936c1/2004/Dockerfile#L45-L58
It should be:
  # Add image configuration and scripts
  ADD supporting_files/start-apache2.sh /start-apache2.sh
  ADD supporting_files/start-mysqld.sh /start-mysqld.sh
  ADD supporting_files/run.sh /run.sh
+ # Add MySQL utils
+ ADD supporting_files/mysql_init.sh /mysql_init.sh
  RUN chmod 755 /*.sh

  ...

- # Add MySQL utils
- ADD supporting_files/mysql_init.sh /mysql_init.sh

I don't know why this script worked fine in previous releases... I didn't encounter this issue.

@mattrayner ,
Here we have the warning:

WARNING: The requested image's platform (linux/arm64) does not match the detected host platform (linux/amd64/v3) and no specific platform was requested

Is this related to #139 ?


What is 'Guard'?

The readme references Guard but doesn't give a newcomer any idea of what Guard is, or even what company makes it.  Maybe add a link to the wiki page of Guard, or a link to the Guard company's product site?
Of course, we can't rule out the very real possibility that everyone else in the world knows about Guard, except me.

Submitted GH-12 here answering my own question. https://github.com/smurawski/PowerShellGuard/pull/12

Merged.  Thanks!


Link checker is broken -- all nightly builds are failing

Currently all link-checker runs are failing at run time with
Extension error:
Could not import extension sphinx.builders.epub3 (exception: No module named 'imghdr')
Traceback (most recent call last):
  File "/home/runner/miniconda3/envs/test/lib/python3.13/site-packages/sphinx/registry.py", line 459, in load_extension
    mod = import_module(extname)
  File "/home/runner/miniconda3/envs/test/lib/python3.13/importlib/__init__.py", line 88, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Appears to be something broken in the Sphinx ecosystem.

I was able to reproduce the same error locally on the Cookbook Template repo with
conda create --name testlink jupyter-book -c conda-forge
conda activate testlink
jupyter-book build --builder linkcheck .

I wonder if this is related to the fact that conda-forge is now installing Python 3.13 by default.

Suspicion confirmed. When I did this, the link-checker worked normally:
conda create --name testlink-py12 jupyter-book python=3.12 -c conda-forge
conda activate testlink-py12
jupyter-book build --builder linkcheck .

Something upstream in JupyterBook / sphinx must be incompatible with Python 3.13. Would be worth digging a little to see if this has been flagged in the right places yet.

The quick fix would be to just add
python<3.13

to this line
But it would be best to track the issue properly so we can remove that version pin once it's resolved.

#127 didn't work, see https://github.com/ProjectPythia/cookbook-template/actions/runs/11355235621/job/31584177543

The link checker is working now!
https://github.com/ProjectPythia/cookbook-template/actions/runs/11356548892


Solution refactor

About the PR
Refactors SolutionContainer to be ECS. I
Changelog
This isn't interesting for the players. It's a refactor of SolutionContainer.

The failure is related to some bug in the YAML linter. I didn't change any field on the SolutionContainer

Does this include the solutioncontainermanager refactor or next pr?

Does this include the solutioncontainermanager refactor or next or?

It will now

@metalgearsloth yeah, I think you can review this now.

I pinged him on discord but fix space cola and mergeable.


Tree isn't re-render if source tree data was changed

Currently, tree initialized with data, which we pass to it. If source data will change, tree will not react on it. The one possible solution - re-render tree.
Is it expected behavior?

Hi! Please check this issue: https://github.com/amsik/liquor-tree/issues/4
Not yet planning to make the data reactive.
Not you're able to to like:
this.$refs.tree.setModel(newData)

I don't understand why need component without reactivity in Vue.


Adds flatten() to Option and Result

This adds the flatten() method to Result and Option

I appreciate your interest in the project, but I'm afraid I can't merge this. The implementation is incredibly limited and makes changes which do not make sense. I don't think it's useful enough in the current form. In my view, flatten should also be recursive.
Additionally, your implementation changes andThen which is not acceptable. The core library needs to remain unchanged, and it shouldn't be necessary to modify an unrelated function to implement a new feature - especially when you could just duplicate the logic if it works similarly.
I think I see what you were going for with the E1 though, but it doesn't actually do what you're thinking it does. This does not work:
const x: Result<Result<number, string>, number> = Ok(Ok(1));
const y = x.flatten(); // this context error

Actually.. the change to andThen() is unintentional. That is a remnant of prior experiments.  I would remove that.
I don't think multiple error types is something that should be in scope for andThen and flatten.
I adamantly disagree regarding flatten needing to be recursive.  There isn't a single implementation that I can think of that flattens recursively (neither Javascript, nor Rust, nor Haskell.)

FWIW, I've reverted the andThen type signature in my branch.

Okay, that makes more sense.
Javascripts built-in Array.flat allows you to specify the recursion depth. I probably should have said 'recursive capable'. However to keep with the Rust implementation it might be better to not include recursion depth as an option.


chore(docs): restructure and rewrite content in documentation and quality standards chapters

Context

Closes issue 15
Removes accordions to better display the content hidden behind them.
Uses TOCs to access the different sub-sections.
Rewrites and trims documentation chapter.

To reviewers

Check if the restructuring helps to better digest and access the provided content.
Check rewriting leads to optimization of the chapters.
Fix any typos or grammar you might find.
Add anything that you see missing.

@thake It would be great if you could review this :)


Make the regular expressions for IdentifierStart and IdentifierPart more compact

This is done by…
(1) not creating a range for consecutive code points;
(2) using hexadecimal escape sequences instead of Unicode escape sequences where possible, by running the generated regexes through http://mothereff.in/js-escapes.
File size savings (bytes):
                 before → after (1) → after (2) | savings
IdentifierStart:  4252  →   4214    →   4198    |   54b
IdentifierPart:   5097  →   5054    →   5038    |   59b
                                           TOTAL:  113b

Merged (with amended commit log to link the issue). Thanks!


VM crashes with big hint PCs

Descrption
Giving the VM a compiled program with a big hint PC location results in two kinds of panics: attempt to add with overflow if the number is usize::MAX and capacity overflow if the number is big enough.
To Reproduce
Create a program that has something similar to this in the hints section:
{
    "attributes": [],
    "builtins": [],
    "compiler_version": "0.11.0",
    "data": [],
    "debug_info": {
    	"instruction_locations": {}
    },
    "hints": {
        "18446744073709551615": [
            {
                "accessible_scopes": [],
                "code": "",
                "flow_tracking_data": {
                    "ap_tracking": {
                        "group": 0,
                        "offset": 0
                    },
                    "reference_ids": {}
                }
            }
        ]
    },
    "identifiers": {
        "__main__.main": {}
    },
    "main_scope": "",
    "prime": "0x800000000000011000000000000000000000000000000000000000000000001",
    "reference_manager": {
        "references": []
    }
}

Expected behavior
The VM should throw an Error instead of panicing
Used version
v0.8.2
Additional context
This bug was found when trying to execute a Program created by manually initializing the fields, without the use of the parser
Program {
    shared_program_data: SharedProgramData {
        data: vec![],
        hints: vec![],
        hints_ranges: vec![
            Some(
                (
                    usize::MAX,
                    NonZeroUsize::new(1_usize).unwrap(),
                ),
            ),
        ],
        main: Some(0),
        start: None,
        end: None,
        error_message_attributes: vec![],
        instruction_locations: None,
        identifiers: HashMap::new(),
        reference_manager: vec![],
    }.into(),
    constants: HashMap::new(),
    builtins: vec![],
}

Problem continues when manually building the Program struct

Talking with @Juan-M-V, this "bug" cannot be caused by a user, as the Program struct cannot be built directly. With the checks added in #1340, neither can this be built from a parsed program.


Tcp: add a tcp async client

Signed-off-by: Boteng Yao<EMAIL_ADDRESS>
Add a Tcp async client and factory to thread local cluster.
Commit Message:
Additional Description:
Risk Level: Low
Testing: integration & unit test
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

/assign @yanavlasov
Thanks for the review!
For the test filter, I am not using the filter owned buffer, but directly use the underlying connection buffer to achieve the stream.

@yanavlasov PTAL, thanks!

I have pinged maintainers for non Google review

/retest


[WFCORE-544] Pick up the DMR-18 fix

Core - Full Integration Build 475 is now running using a merge of b4989de1d624a9aba1a014d6987f4fdc8b2efc18

Linux Build 1207 is now running using a merge of b4989de1d624a9aba1a014d6987f4fdc8b2efc18

Windows Build 897 is now running using a merge of b4989de1d624a9aba1a014d6987f4fdc8b2efc18

Windows Build 897 outcome was SUCCESS using a merge of b4989de1d624a9aba1a014d6987f4fdc8b2efc18
Summary: Tests passed: 3020, ignored: 95 Build time: 0:18:39

Linux Build 1207 outcome was SUCCESS using a merge of b4989de1d624a9aba1a014d6987f4fdc8b2efc18
Summary: Tests passed: 3020, ignored: 95 Build time: 0:19:17

Core - Full Integration Build 475 outcome was SUCCESS using a merge of b4989de1d624a9aba1a014d6987f4fdc8b2efc18
Summary: Tests passed: 2859, ignored: 378 Build time: 0:48:45


Is there a way to have the thumbnail show until the video starts autoplaying?

I'm aware that you are able to have the property, 'light' to have a thumbnail before the video plays.
However, you have to click on the thumbnail to play the video.
I want to see if there is a way to display the thumbnail for a second before the video is loaded in.
Here's what it looks like currently.
        <ReactPlayer           className="limit-height"           playing={true}           loop={true}           controls={false}           muted={true}           width="100%"           height="100%"           playsinline={true}           url="https:/example.video.m3u8"         />

Can you do something manually using the onStart callback? You could have something like this:
{!hideImage && <img src='/image.png' />}
<ReactPlayer className="limit-height" playing={true} loop={true} controls={false} muted={true} width="100%" height="100%" playsinline={true} url="https:/example.video.m3u8" onStart={hideImage} />

With a handler like:
const hideImage = () => setHideImage(true)

I've done something similar so I hope this helps!

@TomHennessy is correct. The best way is to use onStart and show/hide the thumbnail/player based on the state.

Great workaround, but a bit annoying to need to do this for each image in my project when I already have light set up


Initial support for NPA and AFS archives

Everything seems to work on both Windows and Linux, all NPA and AFS files can be copied as is from the disc to the content root.
Only nss.npa needs to be extracted because the bytecode compiler doesn't use the ContentManager.
The way the mounts are declared in Game.json is quite ugly but I had no other idea that allowed enough flexibility for the edge cases (two archives mounted on dx, dx archives are called movie in system.npa and the recursion of the voice archives).

Okay, that's seriously impressive. Thank you!
I'll try not to nitpick too much.

As I said I'm not familiar with .NET and, to be honest, this is my first "real" thing with it (okay, I admit it might be dumb to do that in a PR), so don't be afraid to nitpick too much, I had no real idea of how memory management worked in C# before you talked about Dispose and didn't even knew that static constructors were a thing.

What do you mean "dumb"? I really meant it when I said this PR was impressive. If not for the finalizers in your code, I would probably just merge it and take care of all the stylistic things myself. That is still an option if you're already tired of reading my comments or simply don't care enough about .NET and C#.

No I care about it, what I meant by that was that it might not be well received by some people to do your first tries with an unknown technology in a PR to a public repo.

I really meant it when I said this PR was impressive.

Thank you :meow:


PWM setting params

This allows to set PWM min, max etc by using the new p:PWM_MIN syntax for the wpm command.

@tumbili Ready for on hardware testing. Please use the Caipi config, you have PWM_MIN and MAX params in the param default group if you flash from the console and in the PWM Output group if you flash the binary from this branch via QGC.

@LorenzMeier Doing this today in the evening.

@LorenzMeier Tested, seems to work. Let me try again tomorrow after the flight once more.

@LorenzMeier This is tested intensively! The functionality is working well, tested min, max and disarmed. Just two things I wanted to mention:

We should adjust the limit pwm values in drv_pmw_output.h
I think Remo sent some specs lately of how hight they want to go up with their PWM.

The default PWM_DISARMED is set to 0, is that intentional?

Yes. Disarmed defaults to off. Could you push a commit with the limit changes?

@LorenzMeier I slightly adjusted pwm_max, the rest was ok. I also set PWM_DISARMED in the caipi config. Rebased on release and ready to go.


Support of new Table ?

Is there some plan to support new Grafana Table.
How can I support here.

Unfortunately there isn't.
But you might want to have a look at https://github.com/grafana/grafana-foundation-sdk/, which is maintained by Grafana Labs and supports much more panels than grabana :)


Migrate Sidechain Dashboard from FederatedSidechains

Is this the same PR?
https://github.com/stratisproject/StratisBitcoinFullNode/pull/3407
If yes please close 3407

No no Dan it's a test with Jeremy, to bring up the history but apparently there a problem


feat: barebones addressbook for tagging

This is a barebones addressbook for us to be able to get our contacts to compute tags for them. We then search for these tags when querying for notes.

LGTM! I'm thinking it might make sense to refactor the taggingSecretIndexes db to be easier to use (instead of indexing by the index, maybe exposing an API like getReceptionTaggingSecret(sender) and getTransmissionTaggingSecret(recipient). That way we can clean up the indexes when we remove someone from the addressbook? We can tackle this here: https://github.com/AztecProtocol/aztec-packages/issues/9369


agent log4j2 config file rolling

What version of pinpoint are you using?
master/2.1.0
Describe the bug
The backupsize property in log4j2.xml of the agent module is unused. The log file would be rolling based on date, if large volume of log data per day may have some issue. Checked https://logging.apache.org/log4j/2.x/manual/appenders.html#RollingFileAppender for reference and did not find backupsize property. Checked the web module, the backupsize property is used by SizeBasedTriggeringPolicy. Please correct me if i'm wrong.
https://github.com/naver/pinpoint/blob/master/agent/src/main/resources/profiles/release/log4j2.xml#L7 and https://github.com/naver/pinpoint/blob/master/agent/src/main/resources/profiles/release/log4j2.xml#L23-L26

You are right. It seems to be a mistake.
The old version of Log4j2 does not support SizeBasedTriggeringPolicy,
so this configuration was deleted, but the backupsize property is missing.

Just made a PR #7273 for it. @emeroad

Using SizeBasedTriggeringPolicy should be ok now from Pinpoint version 2.1.0 and afterwards.

Thank you for your contributions


Are non-SIMD fallbacks and automatic multiple-target support planned?

I'm the author of rawloader and am trying to figure out the best way to speed up image operations without a lot of code duplication. Ideally one could write the function once and have the best SIMD implementation be used in several architectures. For this a few things would need to happen:

When SIMD isn't available at all fallback to a implementation of the same instructions
Have the same function call the ideal function depending on if the target has SSE/AVX/etc
Auto-generate all the target variations (e.g., with and without AVX on x86-64) and dispatch between then at runtime

Having 1) would make it much easier to add SIMD support to applications without having to add special cases everywhere but at least for some applications it's not strictly needed as you would never want to run it on a CPU so basic. Having 2) would take a lot of the effort away from writing SIMD implementations but it only makes sense if the performance downside of mixing SIMD with non-SIMD code doesn't make it slower than the fully non-SIMD version. I've proposed the equivalent of 3) for normal LLVM generation here:
https://github.com/rust-lang/rust/issues/42432
I'm curious what the general opinion on this is. At least for basic operations like doing a FMA on a bunch of values it would be great to be able to write once and target most architectures efficiently with good fallbacks. Having a way to also use OpenCL with the same code would be even nicer and probably possible for a few simple operations.

Well, if you have two 256 bit vectors and add them together, then LLVM is going to generate what it thinks is the optimal code based on the target platform.

dispatch between then at runtime

This is a completely differest beast. It's not clear whether this library will get support for that sort of thing.
It's hard to say much more though. Could you please offer some concrete examples and what you expect to happen?

I've created a minimal test case for this here:
https://github.com/pedrocr/rustc-math-bench/
Just compiling that with target-cpu=native gives me a ~40% reduction in runtime so it's well worth it and I would like for rust to just compile the same code with several targets and decide between them at runtime. That's the issue I opened on rust-lang and is applicable to more than just SIMD.
For simd it would be nice if I could write this loop only once:
https://github.com/pedrocr/rustc-math-bench/blob/master/src/main.rs#L41-L43
And then have it be normal adds and muls if nothing is available, SSE2 if that's available or even AVX if it's available and worth it.

See here for an example of how matrix multiplication can be sped up by large ammounts on the same architecture depending on the SIMD used:
https://gist.github.com/rygorous/4172889#gistcomment-2114980
The SSE version will always exist on x86-64 but it would be nice if the faster AVX one was used if available without having to write several versions or compiling in different ways.

And then have it be normal adds and muls if nothing is available, SSE2 if that's available or even AVX if it's available and worth it.

Why not just write it with SIMD vectors? LLVM should take care of the code generation for you.

compiling in different ways

As I said, this is a completely different can of worms. The easy path is to tell the compiler which target you want, and the compiler will take care of the rest. Runtime switching is completely different and requires compiling every different form of the code for each target you want to support into the binary, and then cleverly runtime switching. This is not happening any time soon and it's not clear at all whether it's in scope for this library. We don't even have the right infrastructure in place for doing it on Rust stable anyway.

Why not just write it with SIMD vectors? LLVM should take care of the code generation for you.

Don't know what these are and googling didn't help much. LLVM auto-vectorization?

As I said, this is a completely different can of worms. The easy path is to tell the compiler which target you want, and the compiler will take care of the rest.

This I've done and demonstrated a large benefit.

Runtime switching is completely different and requires compiling every different form of the code for each target you want to support into the binary, and then cleverly runtime switching. This is not happening any time soon and it's not clear at all whether it's in scope for this library.

Ok, too bad. SIMD has a big cost in development time so it would be nice if there were ways that perhaps don't extract all the performance but allow more cases to be used.

We don't even have the right infrastructure in place for doing it on Rust stable anyway. I'd suggest you go off and build this yourself for now.

 But @parched apparently has a macro-based solution for this that could perhaps be used.

Maybe it isn't clear, but I don't disagree with your stated goals. What I'm trying to tell you is that I don't know what the path forward is. You've brought up several different concerns in this single issue, so it's hard to untangle them and it's not clear whether this specific library should solve all of them.

Don't know what these are and googling didn't help much.

Have you looked at the documentation for this crate? f32x4 is a SIMD vector, for example, that is roughly equivalent to __m128 in Intel's intrinsic headers. You can see lots of examples using SIMD vectors here: https://github.com/rust-lang-nursery/simd/tree/master/examples

LLVM auto-vectorization?

Auto vectorization happens when the code generator recognizes a specific pattern and knows it can use SIMD. In theory, that might work for your code. I don't know. You'd need to check the generated assembly. That uncertainty is the primary downside of auto vectorization. This library is focused on explicit SIMD, where you can express operations using SIMD vectors and get a guarantee that the compiler will generate the best SIMD instructions for your target platform.

Oh, I definitely understood that. I opened this issue to start the conversation and to understand how much of the solution could be in this crate.

Have you looked at the documentation for this crate? f32x4 is a SIMD vector, for example, that is roughly equivalent to __m128 in Intel's intrinsic headers.

I had seen that but hadn't realized I could just use those types with normal operations. I went looking for a multiply-add call instead. So that's cool, now I know how I'd implement my code with this crate. :)

Auto vectorization happens when the code generator recognizes a specific pattern and knows it can use SIMD. In theory, that might work for your code. I don't know. You'd need to check the generated assembly. That uncertainty is the primary downside of auto vectorization.

Yep, and that's why I'd like to use explicit SIMD for some hot parts.

This library is focused on explicit SIMD, where you can express operations using SIMD vectors and get a guarantee that the compiler will generate the best SIMD instructions for your target platform.

Would it be in the scope of this library to have the f32x4 type have a no-SIMD fallback? Because with that a reasonable plan for SIMD speedups in rust code without loss of portability could be:

Enable the annotation for the compiler to compile that function for several platforms and dispatch dinamically in runtime
For select operations use the simd crate vector types so some operations are explicitly SIMD in all architectures that have some (no effect on others)
For select operations write architecture specific code for larger speedups when it's worth it

I'd say this crate could enable 2) and 3) and allow the compiler to do 1) on its code as well.

Would it be in the scope of this library to have the f32x4 type have a no-SIMD fallback?

It already does and it's handled seamlessly by the compiler. Otherwise, I'm not really sure what you're asking for. In the general case, you need a code generator to do this, which I think is definitely out of scope for this library anyway.

Then that's all really :) I've used the crate to implement explicit SIMD in my benchmark:
https://github.com/pedrocr/rustc-math-bench/commit/f81e57c8794ba91b8cd870c2c434f35d413025b1
Seems like llvm was already pretty good in this case but not perfect:

Compilation
nomal code
simd code

-O3
16.25
14.70 (-10%)

-O3 -C target-cpu=native
7.06
6.31 (-11%)

The code looks quite good too which is very nice. I'll be using this as soon as it works in stable.


Example on the web

Is there an example on the web? Perhaps similar to https://howsecureismypassword.net/ ?

I'd like to link my friends to https://howsecureismypassword.net/ but I'm not convinced the results are reliable
For example given the password Potatoes01 that website says

It would take a desktop PC about 6 years to crack your password

Whereas your app suggests

offline_fast_hashing_1e10_per_second: 'less than a second'

I think that's more believable. 81A2A395943F1FF3F5E80BFC5E7F5313

I found https://dl.dropboxusercontent.com/u/209/zxcvbn/test/index.html
Has anyone made a more user-friendly site?

Hi @hickford, that interactive demo is the only one I've made. Its goal is to directly show the return value of the library, hence the bare-bones feel.
In terms of user-friendliness, I'd recommend directly trying zxcvbn on sites that use it (some of these are using older versions of the lib): dropbox.com/register, dashboard.stripe.com/register and coinbase.com/signup are three examples, but there's many others.

Hi Dan. Thanks for your reply. Cool I might try my hand at making a https://howsecureismypassword.net/ style site

Thanks for your help. https://how-strong-is-my-password.divshot.io/


setDefaultAutoClear function not exist

Hi,
The readme mentions using:
this.notifications.setDefaultAutoClear(true);

but this errors saying it is not a function (when I try and use it in my controllers init function) and I cant find a reference to it if i search through the src files.
Is there an easy way to default all messages to auto clear, without manually editing the services/notification-messages-service.js file?  ( I assume it would be possible to extend this file, but thought i would check this wasn't already taken into account by another means first)

@shopapps I've yet to publish a npm version with the new function. I'll try get to that tonight.

ahh, ok..  that would be cool, many thanks.

Also, it would be extra handy as I'm struggling on how to extend the addons services/notification-messages-service.js file, ember cli just isn't picking up the file i added to the apps/services folder  (unless im supposed to put the file some where else?)

@shopapps Just released v3.1.1, that function should be available now :rocket:


⚠ Bofrost.nl has degraded performance

In 09d5fd2, Bofrost.nl (https://www.bofrost.nl) experienced degraded performance:

HTTP code: 200
Response time: 870 ms

Resolved: Bofrost.nl performance has improved in 75453b8.


vacuum-go: 0.14.1 -> 0.14.3

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/daveshanley/vacuum/releases.
meta.description for vacuum-go is: The world's fastest OpenAPI & Swagger linter
meta.homepage for vacuum-go is: https://quobix.com/vacuum
meta.changelog for vacuum-go is: https://github.com/daveshanley/vacuum/releases/tag/v0.14.3
Updates performed

Golang update

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.14.3 with grep in /nix/store/wmvyv6lx39y06djj52y1a1ax462z0bc0-vacuum-go-0.14.3
found 0.14.3 in filename of file in /nix/store/wmvyv6lx39y06djj52y1a1ax462z0bc0-vacuum-go-0.14.3

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

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

vacuum-go

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/wmvyv6lx39y06djj52y1a1ax462z0bc0-vacuum-go-0.14.3 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

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

Or:
nix build github:r-ryantm/nixpkgs/b42fae534c706f9b8586c68c4030e69005abb26e#vacuum-go

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/wmvyv6lx39y06djj52y1a1ax462z0bc0-vacuum-go-0.14.3
ls -la /nix/store/wmvyv6lx39y06djj52y1a1ax462z0bc0-vacuum-go-0.14.3/bin

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

x86_64-linux

:white_check_mark: 1 package built:

vacuum-go

Maintainer pings
cc @konradmalik for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

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

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 360802

x86_64-darwin

:white_check_mark: 1 package built:

vacuum-go


Possible Race Condition during black-listing of hosts

A. The following test was performed on a 3 node cluster (rh7v-intel64-90-test-4/5/6.marklogic.com), with a db associated with forests on each of the nodes.
B. The dmsdk job is started from a client machine and while loading is going on, client machine is disconnected from the servers (vpn is disconnected) and after a while vpn is reconnected
C. Chronologically ,  the events are as follows:
At 20:44:18.082 , [pool-1-thread-1] blacklists "rh7v-intel64-90-test-5.marklogic.com"
At 20:44:18.097 , [main] blacklists "rh7v-intel64-90-test-6.marklogic.com"
Any forestConfig obtained after this time shouldn't contain either "rh7v-intel64-90-test-5.marklogic.com" or "rh7v-intel64-90-test-6.marklogic.com".But
At 20:44:18.113 ,[pool-1-thread-1] uses hosts [rh7v-intel64-90-test-6.marklogic.com, rh7v-intel64-90-test-4.marklogic.com] with forests for "WriteHostBatcher"
and
At 20:44:18.150,  [main] uses hosts [rh7v-intel64-90-test-5.marklogic.com, rh7v-intel64-90-test-4.marklogic.com] with forests for "WriteHostBatcher"
D.20:44:39.245 [pool-1-thread-1] INFO  c.m.c.d.impl.WriteBatcherImpl - (withForestConfig) Using [rh7v-intel64-90-test-5.marklogic.com] hosts with forests for "WriteHostBatcher"
At 20:44:39.245 when [pool-1-thread-1]  blacklists "rh7v-intel64-90-test-4", the job should have stopped as other hosts were already blacklisted and the number of available hosts at this point is 0. But [pool-1-thread-1] seems to filter out host "rh7v-intel64-90-test-4" from the latest forest config obtained by [main] thread  [rh7v-intel64-90-test-5.marklogic.com, rh7v-intel64-90-test-4.marklogic.com] at 20:44:18.150 and the job continues.
Snippet log is below and complete log is available at exception.txt
20:44:06.444 [main] INFO  c.m.c.d.impl.WriteBatcherImpl - Adding DatabaseClient on port 8000 for host "rh7v-intel64-90-test-5.marklogic.com" to the rotation
20:44:06.819 [main] INFO  c.m.c.d.impl.WriteBatcherImpl - Adding DatabaseClient on port 8000 for host "rh7v-intel64-90-test-6.marklogic.com" to the rotation
20:44:06.819 [main] INFO  c.m.c.d.impl.WriteBatcherImpl - Adding DatabaseClient on port 8000 for host "rh7v-intel64-90-test-4.marklogic.com" to the rotation
20:44:06.179 [main] INFO  c.m.c.d.impl.WriteBatcherImpl - (withForestConfig) Using [rh7v-intel64-90-test-5.marklogic.com, rh7v-intel64-90-test-6.marklogic.com, rh7v-intel64-90-test-4.marklogic.com] hosts with forests for "WriteHostBatcher"
20:44:18.082 [pool-1-thread-1] ERROR c.m.c.d.HostAvailabilityListener - ERROR: host unavailable "rh7v-intel64-90-test-5.marklogic.com", black-listing it for PT15S
20:44:18.097 [main] ERROR c.m.c.d.HostAvailabilityListener - ERROR: host unavailable "rh7v-intel64-90-test-6.marklogic.com", black-listing it for PT15S
20:44:18.113 [pool-1-thread-1] INFO  c.m.c.d.impl.WriteBatcherImpl - (withForestConfig) Using [rh7v-intel64-90-test-6.marklogic.com, rh7v-intel64-90-test-4.marklogic.com] hosts with forests for "WriteHostBatcher"
20:44:18.150 [main] INFO  c.m.c.d.impl.WriteBatcherImpl - Adding DatabaseClient on port 8000 for host "rh7v-intel64-90-test-5.marklogic.com" to the rotation
20:44:18.150 [main] INFO  c.m.c.d.impl.WriteBatcherImpl - (withForestConfig) Using [rh7v-intel64-90-test-5.marklogic.com, rh7v-intel64-90-test-4.marklogic.com] hosts with forests for "WriteHostBatcher"
20:44:39.245 [pool-1-thread-1] ERROR c.m.c.d.HostAvailabilityListener - ERROR: host unavailable "rh7v-intel64-90-test-4", black-listing it for PT15S
20:44:39.245 [pool-1-thread-1] INFO  c.m.c.d.impl.WriteBatcherImpl - (withForestConfig) Using [rh7v-intel64-90-test-5.marklogic.com] hosts with forests for "WriteHostBatcher"
20:44:54.422 [pool-4-thread-1] INFO  c.m.c.d.impl.WriteBatcherImpl - (withForestConfig) Using [rh7v-intel64-90-test-5.marklogic.com, rh7v-intel64-90-test-6.marklogic.com, rh7v-intel64-90-test-4.marklogic.com] hosts with forests for "WriteHostBatcher"
20:44:54.422 [pool-4-thread-1] INFO  c.m.c.d.impl.WriteBatcherImpl - Adding DatabaseClient on port 8000 for host "rh7v-intel64-90-test-6.marklogic.com" to the rotation
20:44:54.422 [pool-4-thread-1] INFO  c.m.c.d.impl.WriteBatcherImpl - Adding DatabaseClient on port 8000 for host "rh7v-intel64-90-test-4.marklogic.com" to the rotation

Test:
@Test
		public void testFailOver() throws Exception{
			try{
				final String query1 = "fn:count(fn:doc())";

		       	final AtomicInteger successCount = new AtomicInteger(0);

		       	final MutableBoolean failState = new MutableBoolean(false);
		       	final AtomicInteger failCount = new AtomicInteger(0);

				WriteBatcher ihb2 =  dmManager.newWriteBatcher();
				ihb2.withBatchSize(20);
				//ihb2.withThreadCount(120);
				dmManager.startJob(ihb2);

				ihb2.setBatchFailureListeners(
						  new HostAvailabilityListener(dmManager)
						    .withSuspendTimeForHostUnavailable(Duration.ofSeconds(15))
						    .withMinHosts(1)
						);
				ihb2.onBatchSuccess(
				        (client, batch) -> {

				        	successCount.addAndGet(batch.getItems().length);
				        	System.out.println("Success Host: "+ client.getHost());
				        	System.out.println("Success batch number: "+ batch.getJobBatchNumber());
				        	 System.out.println("Success Job writes so far: "+ batch.getJobWritesSoFar());
				          }
				        )
				        .onBatchFailure(
				          (client, batch, throwable) -> {
				        	  System.out.println("Failed batch number: "+ batch.getJobBatchNumber());
				        	  /*try{
				        		  System.out.println("Retrying batch: "+ batch.getJobBatchNumber());
				        		  ihb2.retry(batch);
				        	  }
				        	 catch(Exception e){
				        		 System.out.println("Retry of batch "+ batch.getJobBatchNumber()+ " failed");
				        		 e.printStackTrace();
				        	 }*/

				        	  throwable.printStackTrace();
				        	  failState.setTrue();
				        	  failCount.addAndGet(batch.getItems().length);
				          });

				for (int j =0 ;j < 20000; j++){
					String uri ="/local/ABC-"+ j;
					ihb2.add(uri, stringHandle);
				}

			    ihb2.flushAndWait();

		    	System.out.println("Fail : "+failCount.intValue());
		    	System.out.println("Success : "+successCount.intValue());
		    	System.out.println("Count : "+ dbClient.newServerEval().xquery(query1).eval().next().getNumber().intValue());

		    	Assert.assertTrue(dbClient.newServerEval().xquery(query1).eval().next().getNumber().intValue()==20000);

			}
			catch(Exception e){
				e.printStackTrace();
			}
		}

Thanks @srinathgit !  I'll take a look.

This was hard for me to verify, but I could see how it could happen.  Please let me know if this fixes it.

I am not seeing the issue over multiple runs


impl Physics for PhysicsFoundation update readmes

Implementing Physics for PhysicsFoundation makes the API feel much cleaner, calling a method to retrieve the Physics object was annoying.  Foundation and Pvd could be implemented as well, but they aren't used as frequently.
This also updates the readmes code examples, explanations and alternatives list.
builds on #113

I merged this into #113.


librist: fix build for musl

I'll submit this upstream, but I have to wait for my account for the VideoLAN GitLab to be approved, and I don't know how long that will take.  We have until the start of the next cycle, though, because it's too late to get this into staging-next.

Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

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

Could you add that bit of info to a code comment above the patch?
@ofBorg build pkgsMusl.librist

My account got approved, so I've added a link to the upstream MR.

@ofborg build pkgsMusl.librist


[ ] Any backward compatibility impacted?

[ ] Document update required?

[x] Testing done
Added

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder2.1/3663/

Build Success with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/3872/

Build Success with Spark 2.3.2, Please check CI http://<IP_ADDRESS>:8080/job/carbondataprbuilder2.3/11936/

LGTM


Append child XML nodes to single source.

If an element has no children, only text, but has one or more attributes this call will evaluate to TRUE when it should evaluate to FALSE.
This is easy to happened is you are using Varien_Simplexml_Element and is trying to merge two sources. In the end you might get an array with keys and no values. Pretty useless.

Thank you for this PR. Can you split this into two commits, one where you add the core file into community and one where you commit the changes. You can see how it is made in the commit history on this project. This makes future updates and reviews easier.

sure, hold one


Module Build issue on Ubuntu 20.04

Hey!  Thanks for making this.  It's very cool.  I am running into an issue with compiling the module. Here's the make.log file with the error.  Any ideas?

ubuntu@ubuntu-Latitude-E7470:~/supercan$ cat /var/lib/dkms/supercan_usb/0.2.5/build/make.log
DKMS make.log for supercan_usb-0.2.5 for kernel 5.13.0-28-generic (x86_64)
Tue 08 Feb 2022 09:30:24 AM EST
make: Entering directory '/usr/src/linux-headers-5.13.0-28-generic'
  CC [M]  /var/lib/dkms/supercan_usb/0.2.5/build/supercan_usb.o
/var/lib/dkms/supercan_usb/0.2.5/build/supercan_usb.c: In function ‘sc_usb_netdev_close’:
/var/lib/dkms/supercan_usb/0.2.5/build/supercan_usb.c:403:3: error: too few arguments to function ‘can_free_echo_skb’
  403 |   can_free_echo_skb(netdev, i);
      |   ^~~~~~~~~~~~~~~~~
In file included from ./include/linux/can/dev.h:23,
                 from /var/lib/dkms/supercan_usb/0.2.5/build/supercan_usb.c:11:
./include/linux/can/skb.h:26:6: note: declared here
   26 | void can_free_echo_skb(struct net_device *dev, unsigned int idx,
      |      ^~~~~~~~~~~~~~~~~
/var/lib/dkms/supercan_usb/0.2.5/build/supercan_usb.c: In function ‘sc_usb_process_can_txr’:
/var/lib/dkms/supercan_usb/0.2.5/build/supercan_usb.c:765:3: error: too few arguments to function ‘can_free_echo_skb’
  765 |   can_free_echo_skb(netdev, echo_skb_index);
      |   ^~~~~~~~~~~~~~~~~
In file included from ./include/linux/can/dev.h:23,
                 from /var/lib/dkms/supercan_usb/0.2.5/build/supercan_usb.c:11:
./include/linux/can/skb.h:26:6: note: declared here
   26 | void can_free_echo_skb(struct net_device *dev, unsigned int idx,
      |      ^~~~~~~~~~~~~~~~~
/var/lib/dkms/supercan_usb/0.2.5/build/supercan_usb.c:779:3: error: too few arguments to function ‘can_get_echo_skb’
  779 |   can_get_echo_skb(netdev, echo_skb_index);
      |   ^~~~~~~~~~~~~~~~
In file included from ./include/linux/can/dev.h:23,
                 from /var/lib/dkms/supercan_usb/0.2.5/build/supercan_usb.c:11:
./include/linux/can/skb.h:24:14: note: declared here
   24 | unsigned int can_get_echo_skb(struct net_device *dev, unsigned int idx,
      |              ^~~~~~~~~~~~~~~~
/var/lib/dkms/supercan_usb/0.2.5/build/supercan_usb.c: In function ‘sc_usb_netdev_tx_batch_unsafe’:
/var/lib/dkms/supercan_usb/0.2.5/build/supercan_usb.c:1234:4: error: too few arguments to function ‘can_free_echo_skb’
 1234 |    can_free_echo_skb(netdev, echo_skb_index);
      |    ^~~~~~~~~~~~~~~~~
In file included from ./include/linux/can/dev.h:23,
                 from /var/lib/dkms/supercan_usb/0.2.5/build/supercan_usb.c:11:
./include/linux/can/skb.h:26:6: note: declared here
   26 | void can_free_echo_skb(struct net_device *dev, unsigned int idx,
      |      ^~~~~~~~~~~~~~~~~
/var/lib/dkms/supercan_usb/0.2.5/build/supercan_usb.c: In function ‘sc_usb_netdev_start_xmit’:
/var/lib/dkms/supercan_usb/0.2.5/build/supercan_usb.c:1334:3: error: too few arguments to function ‘can_put_echo_skb’
 1334 |   can_put_echo_skb(skb, netdev, echo_skb_index);
      |   ^~~~~~~~~~~~~~~~
In file included from ./include/linux/can/dev.h:23,
                 from /var/lib/dkms/supercan_usb/0.2.5/build/supercan_usb.c:11:
./include/linux/can/skb.h:20:5: note: declared here
   20 | int can_put_echo_skb(struct sk_buff *skb, struct net_device *dev,
      |     ^~~~~~~~~~~~~~~~
make[1]: *** [scripts/Makefile.build:281: /var/lib/dkms/supercan_usb/0.2.5/build/supercan_usb.o] Error 1
make: *** [Makefile:1879: /var/lib/dkms/supercan_usb/0.2.5/build] Error 2
make: Leaving directory '/usr/src/linux-headers-5.13.0-28-generic'

Yep.  That did it.  Thank you!  I had to remove the dkms supercan module first and then add it back as well.


chore: add unit tests for ip address gathering

Codecov Report

Merging #157 (94217da) into main (573384e) will increase coverage by 4.04%.
The diff coverage is 42.85%.

@@            Coverage Diff             @@
##             main     #157      +/-   ##
==========================================
+ Coverage   45.22%   49.26%   +4.04%
==========================================
  Files           8        8
  Lines         544      544
==========================================
+ Hits          246      268      +22
+ Misses        298      276      -22

Impacted Files
Coverage Δ

prometheuspvesd/discovery.py
38.15% <42.85%> (+12.71%)
:arrow_up:

Continue to review full report at Codecov.

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


ActualVim not responsive for a new view of the same file

Hi,
Thank you very much for the very useful package.
I have an issue - It seems when I have the same file open in two different groups (e.g., left and right splits) via File -> New View into File, ActualVim does not work at all (no cursor movement) in the new view.
I removed the init files to see if some settings were causing the problem but it did not make any difference.

Oh, I think Sublime has problems with this feature and view event listeners. IIRC the view event listener doesn't get notifications for the cloned view.

Thanks for the quick reply! I'm not familiar with the internals so I'm afraid I won't be helpful. I find ActualVim better than other vim implementations in sublime, so it would be great if this can get fixed.

Problem 1: https://github.com/lunixbochs/ActualVim/blob/master/actual.py#L49
ActualKeypress.is_enabled() fails on the cloned view. If you force it to True, the same check happens in run, and fails. If you set create=True to fix that, the second view responds to input/selection, but does not sync buffer contents back from Vim. At this point, the selections are shared between the views. That could be fixed by ensuring the selection is correct on first activate. At all points, the first view contents are synced to the second view when updated.

I think the way forward on this is to associate a neovim window 1:1 with a sublime text view, rather than a neovim buffer. I think that solves all of the edge cases here, and is a prereq for code folding as well (#146)


[FLINK-9285][REST][docs] Update REST API docs

What is the purpose of the change
This PR updates the REST API documentation for 1.5.
Brief change log

move legacy docs into separate section
replace JobManager references with Dispatcher
update key for configuring the port
update Developing section

merging.


Open visualizations with google basemaps in editor

Fixes #10261

Please CR @juanignaciosl

No it should't. Although I agreed with you in the ticket, the I realised that we need to be able to migrate google maps and vizjson2 visualizations to the builder. The UI for this is planned for today.

Ok 👍


'selected' attr doesn't seem work

When I use ember-power-select with selected=someAttrs the attributes displays correctly.
But when I switch to using ember-power-select-with-create (just changing the component name, all other attributes stay same), the selected no longer work and the attributes are not displayed any more.
Help?

It works for me. Can you share some code or even a repo?
What version are you on?

I'm on ember 1.13.11, ember cli 1.13.13, ember-power-select 0.7.0, and ember-power-select-with-create 0.1.2.

This works.
{{#power-select options=tags selected=feature.tags onchange=(action (mut feature.tags)) oncreate=(action "createTag") multiple=true as |tag|}}
    {{tag.name}}
{{/power-select}}

This doesn't
{{#power-select-with-create options=tags selected=feature.tags onchange=(action (mut feature.tags)) oncreate=(action "createTag") multiple=true as |tag|}}
    {{tag.name}}
{{/power-select-with-create}}

feature is a ember data object with tags a hasMany, async = true attr, tags is an array of Tag ember data object.

Will be fixed in the v0.1.3 release.
In the meantime, you can try it out by using the branch in package.json:
"ember-power-select-with-create": "cibernox/ember-power-select-with-create#feature/add-support-for-multiple"

:+1:

Released in 0.1.3


Fix pre-commit issues

Description
What is the current behavior?
Currently, our mypy is failing due to issues in dev scripts.
What is the new behavior?

fix missing types for mypy
fix dev script type issue

Does this introduce a breaking change?
No.
Checklist

[ ] Created tests which fail without the change (if possible)
[ ] Extended the README / documentation, if necessary

Failing check is unrelated. I am merging it.


[WIP] Adding plain tukey53H

The normalized version was already included in AutoQC. This is the absolute value check.

@s-good and @BillMills , this is a WIP. I'll ping you again once I think it is ready to go.

@s-good and @BillMills , this is a WIP. I'll ping you again once I think it is ready to go.

Awesome, thanks @castelao, looking forward to it!

Awesome, thanks @castelao, looking forward to it!

@BillMills @s-good , does it work like that?

Could you add to the CoTeDe tests as a way of confirming it works? E.g. add a duplicate of the Tukey53H norm test (https://github.com/IQuOD/AutoQC/blob/master/tests/CoTeDe_checks_validation.py#L147) (the line running the gradient test in L153 shouldn't be there although it won't affect the results).

@BillMills @s-good , I think it is ready to go now. I tested using your latest docker.

Thanks for this, @castelao - I think the tests are failing on something simple; here you're providing a dictionary for the config, where all other AutoQC CoTeDe usage used strings for configs. If we have a look at https://github.com/IQuOD/AutoQC/blob/master/cotede_qc/cotede_test.py#L43, AutoQC's CoTeDe adaptor knows what to do with strings, but needs an else catch to just relabel config as cfg if a dictionary is passed in. With that change, tests pass - can you throw that in please, then I think we'll be good to merge here.

LGTM, thanks @castelao - @s-good, I'm happy to merge here when you are.

Looks good - thanks @castelao and @BillMills. I will merge the pull request.


Add SpinKube projects feature map

moves shim matrix to be more visible too

@calebschoepp @michelleN @bacongobbler @macolso can i get your input on this now that we are nearing all 3 projects having releases


Add toBeThenable and ToBeCatchy Matcher

Do you want to request a feature or report a bug?
A feature.
What is the current behavior?
Yesterday I write something like this:
expr
.then(function() {
  throw new Error('the expression did not fail');
})
.catch((reason) =>
  expect(reason.message).toContain(error),
);

I think could be more idiomatic write something like this:
expr.toBeCatchy((reason) => expect(reason.message).toContain(error));

or you can simply write this, if you expect that it should fail every time:
expr.toBeCatchy();

And we can do the same with toBeThenable. If you like the idea I can work on a PR, let me know ;)

Duplicate of #1377.


Error when creating a decision: invalid type: null, expected a string

Firstly, thank you for building such a great tool. I hope to contribute in the future as my time on open-source projects permits.
Summary:
When creating a ZenDecision using ZenEnginer I am getting the following error
invalid type: null, expected a string

My initial suspicion is this may be an issue with the JSON I output from the editor being a different version than the Engine using that output.
Setup:
I am running the ZenEngine within a NodeJS AWS Lambda.
NodeJS Version: v20.14.0
ZenEngine Version: v0.31.0
Bindings Version<EMAIL_ADDRESS>Editor: Tested with both https://gorules.github.io/jdm-editor/?path=/story/decision-graph--controlled and https://editor.gorules.io/
Runtime Lambda Code:
  const engine = new ZenEngine();
  console.log(`Rules Service: Executing rule`, ruleFromDb.rule);
  console.log(`Rules Service: Executing rule with input`, executeRule.inputs);

  let decision: ZenDecision;
  try {
    decision = engine.createDecision(ruleFromDb.rule);
  } catch (error) {
    console.log(`Rules Service: Failed to create decision`);
    throw error;
  }

  let result: ZenEngineResponse;
  try {
    result = await decision.evaluate(executeRule.inputs);
  } catch (error) {
    console.log(`Rules Service: Failed to evaluate decision `);
    throw error;
  }

decision = engine.createDecision(ruleFromDb.rule); is the line that throws an error.
Decision Context:
The context is loaded into the engine to create a decision
{
  "contentType": "application/vnd.gorules.decision",
  "nodes": [
    {
      "id": "ca98730e-a40f-4601-98cc-b5a57429596d",
      "type": "inputNode",
      "position": {
        "x": 70,
        "y": 250
      },
      "name": "Request"
    },
    {
      "id": "c5e747fe-b74b-4b74-9fd0-bfd7d67007c3",
      "type": "outputNode",
      "position": {
        "x": 670,
        "y": 250
      },
      "name": "Response"
    },
    {
      "id": "359173d8-0068-45f8-bb71-8240ad73201d",
      "type": "decisionTableNode",
      "position": {
        "x": 370,
        "y": 250
      },
      "name": "test",
      "content": {
        "hitPolicy": "first",
        "inputs": [
          {
            "id": "HVo_JpALi8",
            "field": "adjustment",
            "name": "Adjustment Amount"
          },
          {
            "id": "HW6mSVfLbs",
            "field": "lineOfBusiness",
            "name": "Line Of Business"
          }
        ],
        "outputs": [
          {
            "field": "hardStop",
            "id": "3EGDrV0ssV",
            "name": "Hard Stop"
          },
          {
            "id": "7093b9d3-a46a-4807-9a74-05db6b3a833d",
            "field": "softStop",
            "name": "Soft Stop"
          }
        ],
        "rules": [
          {
            "_id": "qMpJEvcau6",
            "_description": "",
            "HVo_JpALi8": "> 10",
            "HW6mSVfLbs": "\"Life\"",
            "3EGDrV0ssV": "\"Limit Exceeded\"",
            "7093b9d3-a46a-4807-9a74-05db6b3a833d": ""
          },
          {
            "_id": "6f138169-074a-4dd0-9a20-8e0833a8a1c4",
            "HVo_JpALi8": "> 10",
            "HW6mSVfLbs": "\"Disability\"",
            "3EGDrV0ssV": "",
            "7093b9d3-a46a-4807-9a74-05db6b3a833d": "\"This adjustment will require UW Review\""
          }
        ]
      }
    }
  ],
  "edges": [
    {
      "id": "1d5f4787-4c86-4ed9-99dc-1a3159f65d89",
      "sourceId": "ca98730e-a40f-4601-98cc-b5a57429596d",
      "type": "edge",
      "targetId": "359173d8-0068-45f8-bb71-8240ad73201d"
    },
    {
      "id": "c5d49d3a-fdfd-4f4b-8838-791cee4d4a55",
      "sourceId": "359173d8-0068-45f8-bb71-8240ad73201d",
      "type": "edge",
      "targetId": "c5e747fe-b74b-4b74-9fd0-bfd7d67007c3"
    }
  ]
}

Rule Inputs (Note: it is erroring out before evaluation)
{
    "adjustment": 11,
    "lineOfBusiness": "Life"
}

Additional Information and Questions:

Is there a schema validation that can be turned on for the context being loaded into the createDecision function so I can pinpoint what is causing the issue?
When I run the above rule inputs in the online rules editor https://editor.gorules.io/ the rule executes successfully and gives the expected output.
With the expectation that the issue may be a version incompatibility issue between the editor and the engine, I rolled back the engine all the way back to v0.23.0 but still hit the issue

Thank you for any guidance you may be able to provide.

Hi @raymondKelly,
Thanks for the praise, and we are definitely open to some contribution. Currently we have few active areas:

Enhancing documentation or examples
Providing more test data (see test-data/graphs folder it's on auto-discovery)
Enabling more languages through Rust bindings
Fixing smaller bugs

Posted issue
Regarding your issue posted above. I am unable to replicate it. This is how my script looks like:
import { ZenEngine } from '@gorules/zen-engine';

const data = {
  "contentType": "application/vnd.gorules.decision",
  "nodes": [
    {
      "id": "ca98730e-a40f-4601-98cc-b5a57429596d",
      "type": "inputNode",
      "position": {
        "x": 70,
        "y": 250
      },
      "name": "Request"
    },
    {
      "id": "c5e747fe-b74b-4b74-9fd0-bfd7d67007c3",
      "type": "outputNode",
      "position": {
        "x": 670,
        "y": 250
      },
      "name": "Response"
    },
    {
      "id": "359173d8-0068-45f8-bb71-8240ad73201d",
      "type": "decisionTableNode",
      "position": {
        "x": 370,
        "y": 250
      },
      "name": "test",
      "content": {
        "hitPolicy": "first",
        "inputs": [
          {
            "id": "HVo_JpALi8",
            "field": "adjustment",
            "name": "Adjustment Amount"
          },
          {
            "id": "HW6mSVfLbs",
            "field": "lineOfBusiness",
            "name": "Line Of Business"
          }
        ],
        "outputs": [
          {
            "field": "hardStop",
            "id": "3EGDrV0ssV",
            "name": "Hard Stop"
          },
          {
            "id": "7093b9d3-a46a-4807-9a74-05db6b3a833d",
            "field": "softStop",
            "name": "Soft Stop"
          }
        ],
        "rules": [
          {
            "_id": "qMpJEvcau6",
            "_description": "",
            "HVo_JpALi8": "> 10",
            "HW6mSVfLbs": "\"Life\"",
            "3EGDrV0ssV": "\"Limit Exceeded\"",
            "7093b9d3-a46a-4807-9a74-05db6b3a833d": ""
          },
          {
            "_id": "6f138169-074a-4dd0-9a20-8e0833a8a1c4",
            "HVo_JpALi8": "> 10",
            "HW6mSVfLbs": "\"Disability\"",
            "3EGDrV0ssV": "",
            "7093b9d3-a46a-4807-9a74-05db6b3a833d": "\"This adjustment will require UW Review\""
          }
        ]
      }
    }
  ],
  "edges": [
    {
      "id": "1d5f4787-4c86-4ed9-99dc-1a3159f65d89",
      "sourceId": "ca98730e-a40f-4601-98cc-b5a57429596d",
      "type": "edge",
      "targetId": "359173d8-0068-45f8-bb71-8240ad73201d"
    },
    {
      "id": "c5d49d3a-fdfd-4f4b-8838-791cee4d4a55",
      "sourceId": "359173d8-0068-45f8-bb71-8240ad73201d",
      "type": "edge",
      "targetId": "c5e747fe-b74b-4b74-9fd0-bfd7d67007c3"
    }
  ]
};

const engine = new ZenEngine();
const decision = engine.createDecision(data);

console.log(await decision.evaluate({
    "adjustment": 11,
    "lineOfBusiness": "Life"
  }
))

The output is:
{
  performance: "702.333µs",
  result: {
    hardStop: "Limit Exceeded",
  },
}

It's executed using bun script.mts command, but you can use Node.js or deno as well. The likeliest scenario in your example is that ruleFromDb.rule is null (or you might have to do Buffer.from(ruleFromDb.rule) if type is string). The createDecision function either accepts an object or a Buffer.
Additional questions

Is there a schema validation that can be turned on for the context being loaded into the createDecision function so I can pinpoint what is causing the issue?

A: This is planned. Currently you may use function + 'zod' library to achieve this.

When I run the above rule inputs in the online rules editor https://editor.gorules.io/ the rule executes successfully and gives the expected output.
With the expectation that the issue may be a version incompatibility issue between the editor and the engine, I rolled back the engine all the way back to v0.23.0 but still hit the issue

A: See above

@stefan-gorules Thank you for the fast response! Your line of debugging was spot on and something I completely missed. The issue appears to be here for me
                            {
                                "0f59cb62-70eb-41d6-943c-53a3c6e6fcbd": "\"Limit Exceeded\"",
                                "_id": "a7708509-8bde-4898-af8a-9d70b44f1308",
                                "cb98a62e-d1db-4ef5-ace1-05a5c03173b1": "\"Life\"",
                                "e0a33147-5c19-4bb8-92ff-6652f83ef3f5": null,
                                "fb8cb988-e4c9-427f-9184-000b08bbafdb": "> 10"
                            },
                            {
                                "0f59cb62-70eb-41d6-943c-53a3c6e6fcbd": null,
                                "_id": "baa31220-61e1-437a-ad69-de999216a3be",
                                "cb98a62e-d1db-4ef5-ace1-05a5c03173b1": "\"Disability\"",
                                "e0a33147-5c19-4bb8-92ff-6652f83ef3f5": "\"This adjustment will require UW Review\"",
                                "fb8cb988-e4c9-427f-9184-000b08bbafdb": "> 10"
                            }
                        ]

The empty strings are somehow being turned into null somewhere in my stack. I suspect DynamoDB may be doing this. Thank you again this was extremely helpful and sorry for any time wasted.
As for contributions. In my personal time I am contributing to Prisma ORM with a new serverless adapter but once done with that I would be happy to help with this project, especially since I would like to get more involved with rust code.


test suite currently has 8 passing and 10 failing tests

The testsuite currently seems to be failing:
================================================================= short test summary info ==================================================================
FAILED tests/test_textinator.py::test_screenshot_no_notification - AssertionError: assert 'notification:' not in '2023-11-17T... happened.\n'
FAILED tests/test_textinator.py::test_screenshot_qrcode - AssertionError: assert '' == 'https://gith...ll/textinator'
FAILED tests/test_textinator.py::test_screenshot_qrcode_with_text - AssertionError: assert 'https://github.com/RhetTbull/textinator' in 'SCAN ME'
FAILED tests/test_textinator.py::test_screenshot_qrcode_with_text_no_detect - AssertionError: assert 'https://git...l/textinator' not in 'SCAN ME\nht...l...
FAILED tests/test_textinator.py::test_pause - AssertionError: assert 'Paused\nHello World' == 'Paused'
FAILED tests/test_textinator.py::test_confidence - AssertionError: assert '' == 'Hello World'
FAILED tests/test_textinator.py::test_clipboard_basic - AssertionError: assert '' == 'Hello World'
FAILED tests/test_textinator.py::test_confirm_clipboard_changes_yes - assert False
FAILED tests/test_textinator.py::test_confirm_clipboard_changes_no - assert "'confirmation': 1" in "2023-11-17T16:11:19.032612 - search: an update happen...
FAILED tests/test_textinator.py::test_about - assert False
========================================================= 10 failed, 8 passed in 132.69s (0:02:12) =========================================================

It's been a while since I've run the suite but it requires the terminal app you're running from to have various permissions to access desktop, run AppleScripts, and accessibility settings. If the terminal doesn't have the right permissions then the tests will fail. I'll take a look when I get a chance to see if I can specify these. Because I do a lot of CLI Python development my terminal (iTerm2) has full disk access, accessibility access etc.

On Ventura, 13.5.1, Intel, I see only 2 failing tests and I'm sure it's due to a test harness issue. The test suite uses Applescript to drive the UI to conduct tests. Both these tests have a dialog box that pops up and needs to be clicked by the test suite.
============================================================================ short test summary info =============================================================================
FAILED tests/test_textinator.py::test_confirm_clipboard_changes_yes - assert False
FAILED tests/test_textinator.py::test_confirm_clipboard_changes_no - assert "'confirmation': 1" in "2023-11-18T14:38:52.011332 - saved config: {'always_detect_english': 1, 'append': 0, 'confidence': 'LOW', 'confirmation': 0, 'debug': True, 'd...
==================================================================== 2 failed, 16 passed in 160.86s (0:02:40) ====================================================================

And now these two tests are passing. I don't know yet if it was Rumps 4.0 or Ventura that changed it but the order of the Yes / No buttons is reversed from what was expected. The test runner clicks a specified button (in position order) using accessibility scripting and the buttons were reversed:
❯ pytest -vv -k test_confirm_clip
============================================================================== test session starts ===============================================================================
platform darwin -- Python 3.11.6, pytest-7.4.3, pluggy-1.3.0 -- /Users/rhet/.pyenv/versions/textinator/bin/python3
cachedir: .pytest_cache
rootdir: /Users/rhet/code/textinator
collected 18 items / 16 deselected / 2 selected

tests/test_textinator.py::test_confirm_clipboard_changes_yes PASSED                                                                                [ 50%]
tests/test_textinator.py::test_confirm_clipboard_changes_no PASSED                                                                                [100%]

======================================================================= 2 passed, 16 deselected in 42.96s ========================================================================
(textinator)

I don't see any obvious culprits in rumps commit history so perhaps Ventura (or some other version as I developed Textinator originally on Catalina) changed order of default/cancel buttons.

Ok, I'm on Sonoma 14.1.1 on an Apple M1 and I still get the 10 failed tests, so it must be related to our different platforms. Please let me know if you want me to provide detailed error messages/logs etc.

@all-contributors please add @bwagner for tests


'set' resource doesn't handle type mismatch

When trying to use set on an object, it fails with an Uncaught TypeError: arr.slice is not a function.
We should add type validation and our own error handling.
🦄 .editor
// Entering editor mode (^D to finish, ^C to cancel)
let a = {}
a:set('a', 'value')

Uncaught TypeError: arr.slice is not a function
    at Resource.<anonymous> (/Users/milimetr/Desktop/askql/askql/dist/askvm/resources/list/set.js:18:32)
    at Generator.next (<anonymous>)
    at /Users/milimetr/Desktop/askql/askql/dist/askvm/resources/list/set.js:8:71
    at new Promise (<anonymous>)
    at __awaiter (/Users/milimetr/Desktop/askql/askql/dist/askvm/resources/list/set.js:4:12)
    at Resource.resolver (/Users/milimetr/Desktop/askql/askql/dist/askvm/resources/list/set.js:17:16)
🦄

a:set('a', 'value') is set(a, 'a', 'value') is set({}, 'a', 'value') is {} = 'a' so no wonder this throws. Error message should be more informative though

Blocked on https://github.com/xFAANG/askql/issues/45


Check InteractionStatus in Authenticated/UnauthenticatedTemplates

Fixes a bug in the UnauthenticatedTemplate where the initial render on page load will always render the child components because isAuthenticated does not update until the inProgress value !== "startup".
Made the same change to the AuthenticatedTemplate for consistency, though the behavior was not affected.

Coverage increased (+13.3%) to 95.95% when pulling 4a232f44599e0c88fe68899127992f2d58425e08 on block-initial-render-in-templates into e9f90740bf56609466d534e87c45b7af1d8b28b4 on dev.


Suspenders has an inventory that doesn't exist.

Description
If you have suspenders, the belt slot item, and you go to put an item inside of them, as they show having a "is a bag" icon, the item gets put into an "inventory" that doesn't really exist. The item "exists" still but is completely inaccessible.
Reproduction

Spawn as a role with suspenders, or find them.
Notice the bag icon
Attempt to "store" an item in them
Notice that you can't open any U.I. for this "inventory"
That item is now lost forever to the void.

most likely doesn't have a UserInterfaceComponent specifying the storage UI. that, or the storage component should just be removed from these


Game crashing after I try to land on moon

So there is some compatibility problem with sfDesat's moons after patch 1.3.26 (1.3.25 works fine).
When you use the lever/switch to land on moon the game just crashes with this logo (on screenshot below).
Sometimes the moon works fine, its like once in 20-30 tries. Same thing happens to every moon of sfDesat.
This is the only mod that had update when those moons started to crash, so i downgraded to patch do 1.3.25
and then moons load perfectly every time.
I hope you could look into this, as I really like his maps and its kind of meh not using patch 1.3.28 at least
cause of coilhead bug.
Here is the log from the moment I opened terminal and until the game crashes.
Debugging is ON ofc.
[Info   : Unity Log] Set interminalmenu to true: True
[Info   : Unity Log] isDemo:False ; False
[Info   : Unity Log] isDemo:False ; False
[Info   : Unity Log] isDemo:False ; False
[Info   : Unity Log] isDemo:False ; False
[Info   : Unity Log] isDemo:False ; False
[Info   : Unity Log] isDemo:False ; False
[Info   : Unity Log] isDemo:False ; True
[Info   : Unity Log] isDemo:False ; True
[Info   : Unity Log] isDemo:False ; True
[Info   : Unity Log] isDemo:False ; True
[Info   : Unity Log] isDemo:False ; True
[Info   : Unity Log] isDemo:False ; True
[Info   : Unity Log] isDemo:False ; True
[Info   : Unity Log] isDemo:False ; True
[Info   : Unity Log] isDemo:False ; True
[Info   : Unity Log] isDemo:False ; True
[Info   : Unity Log] isDemo:False ; True
[Info   : Unity Log] isDemo:False ; True
[Info   : Unity Log] isDemo:False ; True
[Info   : Unity Log] isDemo:False ; True
[Info   : Unity Log] secondary use A
[Info   : Unity Log] Parsed word: aqua
[Info   : Unity Log] noun keyword: aquatis ; verb keyword: route ; result null? : False
[Info   : Unity Log] result: aquatisRoute
[Info   : Unity Log] Changing level server rpc 17
[Info   : Unity Log] level id: 17
[Info   : Unity Log] Changing level
[Info   : Unity Log] PLAYER OPENED MENU
[Info   : Unity Log] In terminal menu: True
[Info   : Unity Log] Calling stop animation function StopUsing server rpc for player: 0
[Info   : Unity Log] STOPPING SPECIAL ANIMATION ON LOCAL CLIENT; player who was using: Wonsu
[Info   : Unity Log] Quit terminal; inTerminalMenu true?: {playerScript.inTerminalMenu}
[Info   : Unity Log] Level id: 17
[Info   : Unity Log] Lever animation: setting bool to True
[Info   : Unity Log] Sent lever animation RPC on this client
[Info   : Unity Log] STOPPING SPECIAL ANIMATION ON LOCAL CLIENT; player who was using: Wonsu
[Info   : Unity Log] Loading scene
[Info   : Unity Log] Scene that began loading: InitSceneLaunchOptions
[Info   : Unity Log] LOADING GAME!!!!!
[Info   : Unity Log] Waiting for all players to load!
[Info   :LethalExpansion] Game started.
[Warning: Unity Log] There can be only one active Event System.
[Info   :LethalExpansion] Loading scene: InitSceneLaunchOptions
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] AdvancedCompanyCompatibility
[Info   :LethalExpansion] False
[Info   :LethalExpansion] False
[Info   :LethalExpansion] True
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] BrutalCompanyPlusCompatibility
[Info   :LethalExpansion] False
[Info   :LethalExpansion] False
[Info   :LethalExpansion] True
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] CoomfyDungeonCompatibility
[Info   :LethalExpansion] False
[Info   :LethalExpansion] False
[Info   :LethalExpansion] True
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] ExtraDaysToDeadline
[Info   :LethalExpansion] False
[Info   :LethalExpansion] False
[Info   :LethalExpansion] True
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] LethalAdjustmentsCompatibility
[Info   :LethalExpansion] False
[Info   :LethalExpansion] False
[Info   :LethalExpansion] True
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] MoreMoneyStartCompatibility
[Info   :LethalExpansion] False
[Info   :LethalExpansion] False
[Info   :LethalExpansion] True
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] SettingsDebug
[Info   :LethalExpansion] True
[Info   :LethalExpansion] False
[Info   :LethalExpansion] False
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] MapSizeMultiplier
[Info   :LethalExpansion] 1,5
[Info   :LethalExpansion] 1,5
[Info   :LethalExpansion] True
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] MineActivationWeight
[Info   :LethalExpansion] 0,15
[Info   :LethalExpansion] 0,15
[Info   :LethalExpansion] True
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] PreventMineToExplodeWithItems
[Info   :LethalExpansion] False
[Info   :LethalExpansion] False
[Info   :LethalExpansion] True
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] ScrapAmountMultiplier
[Info   :LethalExpansion] 1
[Info   :LethalExpansion] 1
[Info   :LethalExpansion] True
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] ScrapValueMultiplier
[Info   :LethalExpansion] 0,4
[Info   :LethalExpansion] 0,4
[Info   :LethalExpansion] True
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] AutomaticDeadline
[Info   :LethalExpansion] True
[Info   :LethalExpansion] False
[Info   :LethalExpansion] True
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] AutomaticDeadlineStage
[Info   :LethalExpansion] 1013
[Info   :LethalExpansion] 300
[Info   :LethalExpansion] True
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] DeadlineDaysAmount
[Info   :LethalExpansion] 3
[Info   :LethalExpansion] 3
[Info   :LethalExpansion] True
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] MaxItemsInShip
[Info   :LethalExpansion] 202
[Info   :LethalExpansion] 45
[Info   :LethalExpansion] True
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] PreventScrapWipeWhenAllPlayersDie
[Info   :LethalExpansion] False
[Info   :LethalExpansion] False
[Info   :LethalExpansion] True
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] QuotaBaseIncrease
[Info   :LethalExpansion] 90
[Info   :LethalExpansion] 100
[Info   :LethalExpansion] True
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] QuotaIncreaseSteepness
[Info   :LethalExpansion] 16
[Info   :LethalExpansion] 16
[Info   :LethalExpansion] True
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] StartingCredits
[Info   :LethalExpansion] 1000
[Info   :LethalExpansion] 60
[Info   :LethalExpansion] True
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] StartingQuota
[Info   :LethalExpansion] 130
[Info   :LethalExpansion] 130
[Info   :LethalExpansion] True
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] 24HoursClock
[Info   :LethalExpansion] True
[Info   :LethalExpansion] False
[Info   :LethalExpansion] False
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] ClockAlwaysVisible
[Info   :LethalExpansion] True
[Info   :LethalExpansion] False
[Info   :LethalExpansion] True
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] ConvertPoundsToKilograms
[Info   :LethalExpansion] True
[Info   :LethalExpansion] True
[Info   :LethalExpansion] False
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] HideModSettingsMenu
[Info   :LethalExpansion] False
[Info   :LethalExpansion] False
[Info   :LethalExpansion] False
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] ShowMoonPriceInCatalogue
[Info   :LethalExpansion] True
[Info   :LethalExpansion] False
[Info   :LethalExpansion] True
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] ShowMoonRankInCatalogue
[Info   :LethalExpansion] True
[Info   :LethalExpansion] False
[Info   :LethalExpansion] True
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] ShowMoonWeatherInCatalogue
[Info   :LethalExpansion] True
[Info   :LethalExpansion] True
[Info   :LethalExpansion] True
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] WeightUnit
[Info   :LethalExpansion] 1
[Info   :LethalExpansion] 0
[Info   :LethalExpansion] False
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] KickPlayerWithoutMod
[Info   :LethalExpansion] False
[Info   :LethalExpansion] False
[Info   :LethalExpansion] True
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] LegacyMoonLoading
[Info   :LethalExpansion] False
[Info   :LethalExpansion] False
[Info   :LethalExpansion] True
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] LoadModules
[Info   :LethalExpansion] True
[Info   :LethalExpansion] True
[Info   :LethalExpansion] False
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] MoonsRoutePricesMultiplier
[Info   :LethalExpansion] 1
[Info   :LethalExpansion] 1
[Info   :LethalExpansion] True
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] GlobalTimeSpeedMultiplier
[Info   :LethalExpansion] 1,4
[Info   :LethalExpansion] 1,4
[Info   :LethalExpansion] True
[Info   :LethalExpansion] ==========
[Info   :LethalExpansion] NumberOfHours
[Info   :LethalExpansion] 18
[Info   :LethalExpansion] 18
[Info   :LethalExpansion] True

Hello, i reversed the terrain change in 1.3.26 and released a 1.3.37 in preview channel
Could you test it and tell me if it still crash you ?
https://thunderstore.io/c/lethal-company/p/HolographicWings/LethalExpansion_Preview/

Hello, i reversed the terrain change in 1.3.26 and released a 1.3.37 in preview channel Could you test it and tell me if it still crash you ? https://thunderstore.io/c/lethal-company/p/HolographicWings/LethalExpansion_Preview/

I've tested it, that seems to work

nice, i release it as main branch

Sorry for my late response...
Just wanted to confirm. With patch 1.3.37 everything works good again.
Not a single crash, all moons works fine for me now.
Thanks for your time and for the fix :)


Time on the top with notification title  mismatched from the progress bar time

Hey @dcvz,
While testing beta 12 found two issues in notification capabilities
1. When clicking on play/pause 3 to 4 times the button stop responding but audio keeps on playing Fixed in #1404
2. Time on the top with notification title  mismatched from the progress bar time
Screen Recording
Video
Repo
https://github.com/rajpootathar/track-player-beta-testing
Device
Android
Issue 2 screenshot

Originally posted by @rajpootathar in https://github.com/DoubleSymmetry/react-native-track-player/discussions/1264#discussioncomment-1803193

@rajpootathar can you show an example of how you enabled the chronometer? From your fork I don't see a place in the code that enables it.

@rajpootathar I tried running the example app in various Android APIs, and was unable to create a chronometer. We don't officially handle the chronometer in the notification for now, so I am wondering how it actually shows up for you.
What device and android version are you using?
I'm afraid I need more info regarding this issue.

Closed for lack of activity


HELICS installation link update

Description
Updates links to installation guide on readthedocs for User Guide
Proposed changes
Updated links

it looks like there might be a few other places where a similar change is necessary queries.md and FederateInfo.md.  Probably should make the change in those files as well.

Good catch, Phil. Using this handy feature called "search" (have you heard of it?) I think I was able to get all of them in the user-guide folder.

Have you pushed the updates.  I don't see anything the initial commits.

Sorry; updates have now been pushed.

I will merge once the checks complete


Removes doctrees

Removes doctrees from the docs folder and add code in docs script to delete them automatically.

I'm all for this. However, shouldn't we also be removing this from history as well? How big are these files and by just having them do we make it harder to clone cortex?

The doctrees folder is 2.4 Mib of size. We can remove them completely from the history, but since it has been added a long time ago, it may be a little hard.

@ReyhaneAskari What's the best way to do this? 2.4Mb isn't too bad I suppose, but it is large relative to the total size of the repo.

@rdevon it's really difficult to remove a commit deep in the history. I would say 2.4 is not worth the trouble.


HWKAPM-811 Store HTTP status code in OpenTracing standard tag 'http.s…

…tatus_code' and don't use 'fault' tag for communication protocol errors, only business protocol level faults

@pavolloffay I haven't updated the zipkin constant for http.status_code - should this change be included in this PR or separate?

LGTM :+1:
In separate PR is even better :+1:
CI is again having bad days :disappointed:
Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.0:npm (npm install) on project hawkular-apm-ui: Failed to run task: 'npm install' failed. (error code 1) -> [Help 1]

retest this please

@pavolloffay Thanks!
I've created HWKAPM-818 for the zipkin constants.

Test failures are unrelated, so will merge.


Add kubeconfig support

Towards https://github.com/giantswarm/giantswarm/issues/5564

@tuommaki Thx! Will do.


Normalize Specific String Length Behavior with Tuple's

Suggestion

🔍 Search Terms

String#length
String
Intrinsic string length property
String.length type

✅ Viability Checklist

My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

⭐ Suggestion
Currently, tuple types have the length property intrinsicly computed as shown in the folllowing:
type Names = ["Joe", "Jeff", "Jerry"];

type NamesLength = Names["length"]; // 3

However, for specific string types such as "Joe", the length property is still of type number:
type Name = "Joe";

type NameLength = Name["length"]; // number

I would like to propose that the length property be computed in the type type system such that Person["length"] (as shown in the previous example) would evaluate to 3 (the proper length of the string) instead of number.
Now, time for a few of the hairy details.
One of them is how the behavior for the property would be when the type is a union of strings.  The best way to define this behavior is by following what happens when you get the length property on a union of as defined in the following code:
type Params1 = [name: string];

type Params2 = [name: string, age: number];

type EitherParams = Params1 | Params2;

type EitherParamsLength = EitherParams["length"]; // 1 | 2

And the string behavior for getting the length of union strings should not contain any "magic" either, just give out a union of each of the string's length:
type Name = "Joe" | "Jeff" | "Robert";

type NameLength = Name["length"]; // 3 | 4 | 6

type Version = "1" | "1.1-alpha1" | "1.2.1" | "1.2.2";

type FormattedVersion = `v${Version}`; // "v1" | "v1.1-alpha1" | "v1.2.1" | "v1.2.2"

type FormattedVersionLength = FormattedVersionLength["length"]; // 2 | 11 | 6

The generic string type should also behave exactly like a generic Array type when you are getting the length.
interface Person {
  name: string;
  age: number;
}

type People = Person[];

type PeopleLength = People["length"]; // number

type Name = string;

type NameLength = Name["length"]; // number

With union types for the strings when combining string and a specific string type such as "hello", the string length should always remain supreme.  This behavior is not exactly unexpected because unions like string | "foo" | "asdf" evalute to just string.
type Name = string | "foo" | "asdf"; // string

type NameLength = Name["length"]; // number

📃 Motivating Example
The feature would improve TypeScript because it makes the behavior of similarly-structured concepts (specific string and tuple) more universal.  Currently, if I wanted to get the length of a string type, I would have to do something like the following:
/** Turns a string type into a tuple of the characters. */
type Chars<
  T extends string,
  $Chars extends string[] = []
> = T extends `${infer $Ch}${infer $Rest}`
  ? "" extends $Rest
    ? [...$Chars, $Ch]
    : Chars<$Rest, [...$Chars, $Ch]>
  : never;

type Name = "Carter";

type NameChars = Chars<Name>; // ["C", "a", "r", "t", "e", "r"]

type NameLength = Chars<Name>["length"]; // 6

However, the Chars type will easily overload due to its recursive nature:

/** Turns a string type into a tuple of the characters. */
type Chars<
  T extends string,
  $Chars extends string[] = []
> = T extends `${infer $Ch}${infer $Rest}`
  ? "" extends $Rest
    ? [...$Chars, $Ch]
    : Chars<$Rest, [...$Chars, $Ch]>
  : never;

type Name = "a not-even-that-long string";

type NameChars = Chars<Name>; // overload error

type NameLength = Chars<Name>["length"]; // unreachable

💻 Use Cases
The ability to get the length of a string type just by accessing the string property has many benefits.  One of which is being able to lock a string to a specific length for something such as a date in which you want to specify the number of characters that come in each part.
type ExtractDateParts<
  T extends string
> = T extends `${infer M}-${infer D}-${infer Y}`
  ? M["length"] | D["length"] extends 2
    ? Y["length"] extends 4
      ? { month: M; day: D; year: Y }
      : never
    : never
  : never;

type Valid1 = ExtractDateParts<"10-13-2001">; // { month: "10", day: "17", year: "2004" }

type Invalid1 = ExtractDateParts<"10-1-2001">; // never - day has a length of 1

type Invalid2 = ExtractDateParts<"101-12-2001">; // never - month has a length of 3

I thought that the normalization of the indices of specific string types such as hello should not be included in this as it seemed too broad.  However, if anyone would like to write out an issue for that that would normalize the type behaviors and allow for the following code to work as indicated then please do so:
type Name = "Carter";

type FirstLetter = Name[0]; // "C"

type AllLetters = Name[number]; // "C" | "a" | "r" | "t" | "e" | "r"

type OutOfBoundsLetter = Name[6]; // error: String type 'Name' has no character at index '6'. [Very similar to tuple out of bounds error]

The ability to get the length of a string type just by accessing the string property has many benefits. One of which is being able to lock a string to a specific length for something such as a date in which you want to specify the number of characters that come in each part.

That sounds like a poor use-case for this, it won't prevent invalid strings to be passed. #41160 would work for this.

The ability to get the length of a string type just by accessing the string property has many benefits. One of which is being able to lock a string to a specific length for something such as a date in which you want to specify the number of characters that come in each part.

That sounds like a poor use-case for this, it won't prevent invalid strings to be passed. #41160 would work for this.

Sorry, I was trying to explain one of the use-cases of being able to cap strings at a specific length.  A use case that can be solved by having the length key intrinsically updated is setting the only length that cryptographic hex strings can hold.  The solution would be the following:
type CryptoPublicKey = string & { length: 64 };

type CryptoSecretKey = string & { length: 128 };

const public: CryptoPublicKey = "b2adab9840a26690b15c24bd7f1b19d317468d06e21e84f6333350263bc62c5c";

const secret: CryptoSecretKey = "ea01f13a513086dffeeb13d871e8c4fc38a6b19e8d203969c650e992a84139a374505c0e5ac292e0bafab13021c8fa76c63bf4be1759b324b95a9c9c0f2be0da";

const badSecret: CryptoSecretKey = "ea0"; // error: type 'ea0' is not assignable to type 'string & { length: 128 }'.  '3' and '128' are not compatible.

You would basically have the power to not only get the length of a string, but also constrict its length without even requiring generics.  Now, of course you wouldn't be able to verify that the contents of the string are valid in this case, but we are able to set the length of the string which is way better than nothing.  This feature could then solve https://github.com/microsoft/TypeScript/issues/41160#issuecomment-779842757.

Would a string containing only emojis be a valid CryptoSecretKey? I doubt so.
This just seems like the wrong approach.

I absolutely know we have an issue on this already, but cannot find it 😢

I absolutely know we have an issue on this already, but cannot find it 😢

I thought so as well, but couldn't find it either... until now: #34692 Turns out we both commented on it.

Thank you for saving my sanity @MartinJohns 😅


Add CODEOWNERS to github repository generated by 'hs-init'

Recent GHC introduced CODEOWNERS feature. It would be great to generate some default file for github repositories.
Example: https://github.com/serokell/importify/blob/master/CODEOWNERS
Announce: https://github.com/blog/2392-introducing-code-owners

Wasn't sure what you want here. I made a PR anyway, for Hacktoberfest is about to end. might look kinda silly tho. Would like to improve it if you can provide details :)

@ChShersh  thanks for this wonderful idea! It's definitely worth it to have it!
@luvhalvorson  I made some comments in your PR, thank you :)

Turned out it's not useful to have CODEOWNERS until we figure out how to support user vs. organization.

A subtask of #41. Better to keep all of such kind in one place.
(Also it's not clear how to handle this one)