Hitting keys in the wrong order causes keys to be infinitely re-emitted

Version Information:

Linux blueie 6.0.2-zen1-1-zen #1 ZEN SMP PREEMPT_DYNAMIC Sat, 15 Oct 2022 14:00:51 +0000 x86_64 GNU/Linux
swhkd 1.2.1

Describe the bug:
If keys are pressed in the reverse order specified in the config file, the event will still be triggered. In addition, the first key in the sequence will be repeated infinitely.
For example, if setting up the key combo like so:
ctrl + p
    spd-say 'print me'

When pressing the key combination p + ctrl, the ctrl + p command will be run. After the command is run, the p key will continue to type itself infinitely.
Expected behavior:
The ctrl + p command should not be triggered by a p + ctrl key combo. In addition, the p key should not continue to type itself infinitely.
Actual behavior:
See above.
To Reproduce:
Setup a config file like the following:
ctrl + p
    spd-say 'hello'

Now start swhkd and swhks normally:
swhks &
pkexec swhkd

Now attempt to use the correct ordering of the key combo: ctrl + p; you should hear your system speak the work "hello". Conversely, try to press the keys in the opposite order p + ctrl, and notice what happens.
First, the command will still be triggered.
Second, your p key will now type itself over and over and over again until you kill the process.
Additional information:
N/A

I'm not exactly sure what even causes this issue, but I'm quite curious if you could point me in the right direction. We do have a fork for our Odilia project in our repo for reference, and I'd be happy to make a PR for this issue since it is of immediate effect to us. I just can't quite fathom where the error is coming from, but perhaps that's just me not paying attention to the code very closely.
Any help, even just a hint of what to look into to get started on fixing this bug would be much appreciated.
Thanks for your incredible work, y'all!

Thanks for the report!
I think p+ctrl being triggered exactly like ctrl+p is by design, take a look at:
https://github.com/waycrate/swhkd/blob/fdf5e10ae42b58d2b45b10016ad63ebec5e16dd0/swhkd/src/daemon.rs#L341-L343
Basically, this checks that all modifier keys are pressed and that the keysym is also being pressed.
The keysym is added to the list of currently pressed keys at:
https://github.com/waycrate/swhkd/blob/fdf5e10ae42b58d2b45b10016ad63ebec5e16dd0/swhkd/src/daemon.rs#L277-L284
Is triggering the hotkey on p+ctrl really a problem, though? To me, it seems like the expected behavior. If you think this should be different, do you have a use case in mind where this could be an issue?
The second part of your issue seems pretty bad still. I will take a look as soon as possible.

Unfortunately, I cannot reproduce the issue. I used a slightly different config to test your issue, on the latest git version of swhkd:
ctrl + p
    notify-send Test

Pressing  p + ctrl does trigger the hotkey, but it has no issue stopping afterwards.

Here are my findings:
When first pressing a key (p in the example) without a modifier, a key press event is sent to the virtual device to be consumed by other libraries and applications. Pressing the modifier key afterwards triggers the hotkey as expected. Releasing only the key at this point does not send a key release event to the virtual output, as the event_in_hotkeys boolean is true (control is still being pressed and control + p is mapped to a hotkey after all). To any library afterwards, the key is still being pressed as no release event has been received.
To avoid killing the daemon during testing, you can just tap the key (without any modifier) to trigger a key press and key release event.

The issue here is that, for example, p + ctrl does not work for most applications when they provide a key combo. Take for example, Firefox, which allows you to print a webpage with the ctrl + p key combo. If I type p + ctrl, it types the letter p out immediately, then control does nothing, because p + ctrl is not a key combo according to Firefox.
Due to that behavior in other applications, it makes the "reverse key combo still being triggered" an issue, since now the p press event will be taken at face value by the application, but as soon as its part of the binding and not released, the application has no idea that the key is now being used as part of a binding so it continues to type it nonstop.
I don't see a way to combine solving this issue with the current architecture for the following reason: We cannot send out a key release event for every key in a pressed key binding; this could cause even more weird edge cases. (Side note: I don't know why an application would do something on a key release instead of a press, but it would certainly break those theoretical applications to have key bindings sending false events like this.)
If the key bindings were to be ordered, where ctrl + p != p + ctrl, it will adhere to how most other applications have keybindings set up, thus automatically solving the second issue outright.
Unless you can think of a better solution, I think ordered key bindings make the most sense here. It solved the other issue I'm having and adheres more closely to how most other applications handle keybindings.
Thoughts?

Could you please test branch key_release_events_fix (in PR #167) and tell me if it solves your issue? (at least the second part).
As for ordered key bindings: making modifiers ordered might be hard (and I would find this pretty unintuitive to use personally), but triggering a hotkey only if the latest key press (/release) event is from a non-modifier key might be feasible.
We could also add new syntax for the config to tell that a keybind must be ordered. For instance:
# Trigger only if keys are pressed in the order given
>super + ctrl + p
   spd-say 'hello'

Or we could make ordered keybinds the default and unordered a special case. I think it would be better to keep it unordered by default to avoid breaking users' existing workflows and expectations.

Checked out the branch. This does fix the issue of the key perpetually repeating itself even after the key is released. However, now the key combo is passed through, in full, to the underlying application as if I had pressed the keys the other way around.
For example, in Firefox, pressed ctrl + p will activate the key combo and not be passed through to Firefox. Awesome! Pressed p + ctrl, however, causes Firefox's print page dialog to appear.

Didn't get the time to read the entire thread yet, but yes I've faced this bug multiple times. I think I will get to this asap after resolving the udev device issue.
@ajanon Just fyi, feel free to merge the mouse fix in the meanwhile 😁. Once again thanks for the help @ajanon !


Fix headings to wrap optimally before solver

Closes #51

Formatting things but general functionality lgtm

I tried to fix this and the formatter reverted it. I'm not going to try to fight it to make the line breaks consistent

no problem


[zh] update the kubeadm website

pr for https://github.com/kubernetes/website/issues/30218
fix some Incorrect translations and incorrect formats on kubeadm website.

/approve

@tengqm 感谢 review. 我已经重新修改了。

Thanks.
/lgtm

/hold cancel


Upgrading to Akka 2.4

Akka 2.4.0 has been out for two months and it's binary compatible with 2.3.x.
A simple change in the build.sbt allows Reactive Kafka to use Akka 2.4.0.

OK, we are good to go with 2.4.0, thx.

I'm not sure about this one, if 2.3 is binary compatible with 2.4, why would we constrain the users of the library and require 2.4? It would make sense if we used some 2.4 features, but otherwise I think it would be better to leave 2.3, no?

Actually you've got a point. Also Akka 2.4 hasn't got support for Scala
2.10 - I'm not in front of a computer now so I can't check if
reactive-kafka is cross built for 2.10.
Could it be a good idea to have a branch that supports 2.4 instead of
having that on master or you would prefer just users to upgrade Akka at
their own will?
On Mon, 23 Nov 2015 at 08:13, Adam Warski<EMAIL_ADDRESS>wrote:

I'm not sure about this one, if 2.3 is binary compatible with 2.4, why
would we constrain the users of the library and require 2.4? It would make
sense if we used some 2.4 features, but otherwise I think it would be
better to leave 2.3, no?
—
Reply to this email directly or view it on GitHub
https://github.com/softwaremill/reactive-kafka/pull/54#issuecomment-158874186
.

Right, @adamw has a point. I missed that it doesn't support 2.10 too - that's also important. Akka-streams 2.0 is going to support Akka 2.3 so let's keep a single branch for now.


Need scroll bar inside of node properties

I've started writing a text node, however I have come across a problem.

I have run out of space for the parameters of this node, and there are still quite a few parameters I need to add. Adding a scroll bar to the node properties would solve this.

@iwoithe, thank you for your work on this.
This is a known issue. When I was creating the "add text" node myself (see the v0.4.2  source code to see my beginning code -with the old api, though) I ran into this problem. Though, I never implemented the scrollbar because I had a different "road block" that needed to be fixed first. Namely, the renderer threading. (Still to be resolved). You may run into this too, eventually.
Anyway, this looks good and I will try to find some time to implement this Really soon.
Note: I am sure you've probably picked this up, but in order to create new properties, subclass the Property class from the api.
Thanks again. 👍

I've implemented this. It's in the master branch now.

Hi @Correct-Syntax,
While testing the text node on Windows (primarily for #18), I discovered that I couldn't see the font color property.

I don't know why I couldn't scroll any further, but when I resized the node properties panel (bigger), I could see it.

Hmmm. I will take a look at this.
My first thought is that it could be that when you're scrolling the mouse wheel, the event is going to one of the properties (because your mouse cursor is over them) instead of to the panel itself. Not sure if this is the issue you are having, but it's happened to me a few times during testing.
In any case, I will take a peek at it....

@iwoithe Please post what Python/wxPython versions you are using.
@Correct-Syntax You should setup a issue-template for github with these two lines so folks making issues will fill in relevant infos if they may be necessary.
By doing this it makes it easier for me/others to quickly see if it is a problem with your version rather than maybe a mishap in the gimel codebase. wxPy 4.1 fixes a lot of event stuff for example and will cause issues with certain widgets atm.

@iwoithe Please post what Python/wxPython/OS versions you are using.

OS: Windows 10
Python: 3.7.8
wxPython: 4.1.0

Everything seems to work fine on Py3.8/Win7 as far as the scrolled window is concerned.
It looks like the wx.App MouseWheel function needs to be tweaked so you know what is being hovered. I have an example of this at the application level in my sample-apps-and-demos repo for new wxPy demo framework. It handles most classes in a single method.
It's either that or edit all the plugins to accommodate for mouse_events. Hooking in the wx.App way is easier since editing #### of plugins would be a headache and more maint.

@Metallicow

You should setup a issue-template for github with these two lines so folks making issues will fill in relevant infos if they may be necessary.

Good idea. I've done this. Though maybe I should add the Python version as well....

@Correct-Syntax Yep, these are your basic infos. Basically the same as wxPython form since it is your gui kit. Easiest way to force a user to do some sort of work so you don't have to waste time spamming everyone as to please post this or that questions.
At a certain point you will be able to answer some questions just by looking at this stuff without even running code, because you might have been a duplicate issue. Ex: dds wasn't supported on some older pil versions and issuer was to lazy to rtfm.
System (please complete the following information):

OS: [e.g. Windows, Linux Mint] Win7x64
Python Version [e.g. 2.7.18, 3.8.6] Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:19:08) [MSC v.1500 32 bit (Intel)] on win32
wxPython Version [e.g. 4.0.7.post2, 4.1.1] wxPython 4.0.7.post2 msw (phoenix) wxWidgets 3.0.5 Scintilla 3.21
Other Imaging Libs if suspect [e.g Pillow 8.0, ImageMagick x.x.x, etc...]

O.k. This seems to be fixed. Feel free to let me know if its not. :)


test: add tests for unique on cuda

this can go in after #57 is merged

Welcome to Codecov :tada:
Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests.
Thanks for integrating Codecov - We've got you covered :open_umbrella:


Feature Request: Indication if transform is stable or not

Would be nice to run the transform script twice, once on the original source, and then again on the transformed source. Then show a warning if the source changes on the second transform. If it does change that means it's probably not safe to run the script multiple times over the same codebase.

Interesting.


Added support for named sound effect packet.

Adds support for the named sound effect packet.
Also tweaked the finding of new packet ids a bit.

Looks good, great work!


#1870 Add replicaCount in values

Potentially fixes https://github.com/keptn/keptn/issues/1870

I have to withdraw my approval. We must fix it here as well: https://keptn.sh/docs/develop/manage/service/


Events

This reverts the changes in #2408 and #2417. It instead adds an option to listen for the mouse/pointer/touch up and move events on the document. Fixes #2435.

@emackey (and @kring) can you guys take point on reviewing/merging this?  Thanks.

After discussion with @bagnell and @mramato, we are going to completely back out #2408 and #2417, and just have the picking examples that needed these changes use native JS events instead of Cesium events.

To further clarify, it's my believe that we provide little to no benefit by providing our own API for this kind of stuff and we should encourage users to use the standard HTML events wherever possible.  We should seriously consider deprecating the public API we expose for these events with the next release and switching any Sandcastle examples over to use native events.

I reverted the remaining changes, but I left the updated tests.

To further clarify, it's my believe that we provide little to no benefit by providing our own API for this kind of stuff and we should encourage users to use the standard HTML events wherever possible. We should seriously consider deprecating the public API we expose for these events with the next release and switching any Sandcastle examples over to use native events.

+1.  Can you write an issue with the specifics to deprecate?

Code looks good, test pass, and the problems I originally found in National Map go away with this change.  Are there Sandcastle changes that need to happen too?  That can be a separate pull request in any case.  Merging.


Environment variable typo fix

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/Setup-CNTK-on-Windows.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


One line cells should not be scrollable

Cells are not scrollable: they take up as much vertical space as needed. For some reason, this functionality is not working for one line cells:

Left has the newest fix, right is the way it looked before. They are identical, and cells are no longer scrollable.


Added Licence.md

Created MIT LICENCE #6 for this software. add Hacktoberfest2022 tag and help me to making it count.

Thanks for the contribution.

Most Welcome! please add hacktoberfest-accepted tag, It's not showing on my proflile.


Add basic search functionality, and a small UI bound to mod+f.

The search functionality supports single-line, case-sensitive, directional search - with single highlighted results at a time.
This should address https://github.com/zeit/hyper/issues/140 and https://github.com/zeit/hyper/issues/541
This is ready to merge, in theory - but I would be surprised if there are no comments surrounding:

my use of hterm (never used the library before, I've rewritten some private methods to give us the functionality we need, but hopefully I'm missing something more elegant)
my styling (I was unsure how to incorporate themes into this, so just tried to aim for a UI that would fit any theme)

I've also made this as minimal a solution as possible, definitely after this I'd really want to expand the feature to support case-non-sensitive / regex options, and also to support "(n results found)" and multi-result highlighting.
For now, though - here's what it looks like. Please check out the branch and try to break it :)

Features:

Mod+F to open find
Mod+F/Esc to close find
Click "Find" or push "Enter" to find (cycling through 1 at a time) matching search
Push Shift+Enter to cycle through in reverse
Searching is per terminal, so only the focused tab/pane/window is actually searched

When you are searching. You need to select every result at the same time. and using enter key to cycle between them. cursor select the last one then move to bottom and go back to previous find from each enter key.

For the hterm lib part. Move you're code to utils/search.js
export functionality and set them to hterm after. Something like:
hterm.Terminal.prototype.find  = search.find(searchTerm, options = {})

@ppot so currently yes, it's single-select, but pushing enter cycles through the results. Pushing shift+enter cycles through the results in reverse.
And panes are a good point, I should have mentioned. The UI looks exactly the same, and just only the active panes are searched (the same is true of tabs and windows). The search bar is positioned in the top right of the window, not the top right of the pane. I guess this could be confusing, but in my mind it's the window that has a search bar, not the pane.
I'll update the PR description with that^ info.
As for moving code to utils/search.js - what's the reasoning there? It seems unnecessary to declare a utility function, and then bind it to the Terminal prototype anyway. Any time anyone wanted to use the utility function find(terminal, str) they could also just do terminal.find(str). So the API is exactly the same on the Terminal prototype, just with more duplication

For moving those function to utils/search.js is to reduce the complexity of hterm.js file by moving specific parts to their file. But it's okay if it get to big it can be moved afterwards.

Okay @ppot - I've moved that logic out to utils/ in d6c44cec67e258e54da86fc7284f9e09b29a5021 :)

Any more comments/reviews on this...?

Been busy sorry, @albinekb ?

Any updates on this/idea on when it'll get pushed to users?

I should have time to finish addressing comments + resolving merge conflicts tonight

Before fixing thing. You should rebase with master since lots of thing changed.

@ppot yeah, rebased - everything looks like it's working, after a bit of a fix up
@MartyGentillon should have addressed all of your comments.
UTs still to come, I didn't realise quite how bare the UTs were! :(

Okay @MartyGentillon I addressed that last comment
I looked again at adding UTs, but I really think it's gonna make more sense to address this in a separate PR, specifically looking at building up the UT framework here
It looks like the current ava set-up isn't even set up to handle the ES6+ syntax used in the project :/ A lot of the decisions

Looks good to me.

It works really great !
Awesome work @stephencookdev!

@chabou awesome, thank you :)
Is there anything else we need to do to get this merged?

Just for the record, a plugin exists: https://www.npmjs.com/package/hyper-search

Hey, guys? what's the preventing this from merging? i don't want to install a plugin that will later conflict with the build when this gets merged.

The previously mentioned plugin seems to have issues - it does not work for me and other people are also saying the same thing.
They have an open issue:
https://github.com/jaanauati/hyper-search/issues/12
So hopefully this feature gets merged in soon 🙏

Fixed the merge conflicts
Just a note that this PR has been open for 5 months now, though. I'm not sure who the best people to poke are to look at this, but if anyone knows - please poke away... :)

Any updates on this? It seems kinda weird that such an important feature PR would be ignored for so long.

+1 would like to see this feature merged in

+1 for this one! please merge !

"Possible" in January. But now it's September.

Yes, PR welcome 👍  @RichardBronosky We are all busy.

Looks like #3075 ended up fixing this and also #541 .


feat: use a username/password combo to login

fixes #117

Is this addressing https://github.com/nodeshift/openshift-rest-client/issues/117? Shall I verify this pr?

@tremes hi, yes.  if you wouldn't mind.  if you would like for me to release a pre-release with this change, let me know,  it might be easier to test that way

ok I think I can do it without a pre-release...hopefully. Thanks I'll check and let you know

I also need to update the readme with an example, to make it clear how to use this

Something like this should work
const openshiftRestClient = require('openshift-rest-client').OpenshiftClient;

(async function () {
  const settings = {
  };

  settings.config = {
    url: process.env.CLUSTER_URL,
    auth: {
      username: process.env.ADMIN_USERNAME,
      password: process.env.ADMIN_PASSWORD
    },
    insecureSkipTlsVerify: true
  };

  const client = await openshiftRestClient(settings);

  const projects = await client.apis['build.openshift.io'].v1.ns('myproject').builds.get();
  console.log(projects);
})();

OK thanks. I think I'll try it tomorrow....

@lholmquist OK so it worked for me. I think I can progress with migration of our testsuite to v2.0 once this is merged.

Pull Request Test Coverage Report for Build 358

7 of 28 (25.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-63.9%) to 36.111%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

lib/openshift-rest-client.js
4
8
50.0%

lib/basic-auth-request.js
3
20
15.0%

Totals

Change from base Build 354:
-63.9%

Covered Lines:
20

Relevant Lines:
41

💛  - Coveralls


Benchmarks

Compare with competitors on the efficiency of the 3 main algorithms (forward, Viterbi, Baum-Welch):

https://github.com/maxmouchet/HMMBase.jl
https://github.com/hmmlearn/hmmlearn
https://github.com/jmschrei/pomegranate

Scenarios:

dense / sparse
log / not log

seqHMM R package might also be a worthy competitor? That is what I was using previously (via RCall)
https://github.com/helske/seqHMM

Unfortunately I don't know how to write R code ^^
Besides, I'm a little wary of benchmarking through an interface package like PythonCall or RCall. That is why, for my current benchmarks, the Python timings are measured from within Python itself.
If you want to submit a PR doing the same with seqHMM, I can't promise I'll merge but at least I'll study it!
From what I gather it only does categorical observations? Is that your primary use case? I could also add those to the benchmark sets.

From what I gather it only does categorical observations? Is that your primary use case?

Yes to both, although I expect I could use this in the future for other purposes as well.

Mostly solved for Python competitors, including the brand new dynamax (see upcoming JOSS paper)


Deselected TileMap does not remember previously selected tile source

Godot version
4.0 rc2
System information
Windows 10 x64
Issue description
Regression from #71770
When you have a TileMap with multiple tile sources and deselect the node, it resets back to 0. It's likely because the editor edits null and resets to initial state.
This wasn't happening before.
Steps to reproduce

Add TileMap
Add multiple tile sources
Select any source other than the first one
Click other node
Click TileMap again
Your source is no longer selected

Minimal reproduction project
N/A

It's happening again.


foreground subtask of boot script ignores RELX_REPLACE_OS_VARS env variable

rel/<projectname>/bin/<projectname> start while RELX_REPLACE_OS_VARS=true provides a good way to dynamically configure a release based on environment variables at runtime as stated in https://github.com/bitwalker/exrm/issues/90
the custom boot script however irgnores this env. variable when executing the foreground subtask.
Generating the bootscript automatically instead of using the custom provided one (see https://github.com/werbitzky/exrm/commit/f5f2d2682cf362a453cc94805cebaab7a8712286) fixes the problem and RELX_REPLACE_OS_VARS is no longer ignored, maybe the custom boot script is based on a too old version of the original? Is there a strong reason not to use the generated one?

There are a few reasons why exrm uses a forked version of the extended start script from relx:
1.) support for running an Elixir shell when running the release interactively
2.) ensures consolidated protocols are added to the release package and added to the code path when booting the release
3.) hooks for conform (if you use it, if not, then you can ignore this point)
The first two are the primary reason. There is no way (at least that I have found so far) to add in that support after generating the start script, and 1 is a big user-facing feature, and 2 is a critical performance requirement. Anyway, the RELX_REPLACE_OS_VARS support was working, but it looks like something may have broken it, at least for the foreground command.

I just tryed RELX_REPLACE_OS_VARS and it's working like a charm on exrm 1.0.4

Thank you @bitwalker for the good explanation, I'll try it out with 1.0.4 @emeleite :)

@werbitzky @bitwalker I'm really having issues with foreground and RELX_REPLACE_OS_VARS. Only works with start

@emerleite Could you give distillery a try as a replacement for exrm? I don't recall having this issue with exrm, but I'm running several apps in production using the foreground task and REPLACE_OS_VARS=true without issue with distillery.

@bitwalker I'll give distillery a try. But I was wrong. foreground with REPLACE_OS_VARS=true is working with exrm. Thanks ;)


Rationalize the use of a "context"

Currently, many functions take an argument called context. This is simply an arbitrary object that should be passed as first argument to calls into the logging or assert libraries. This commit introduces a Context class that encapsulates the logging context. It also exposes logging and assert functions so that, for example, calls like logger.info(context, ... are replaced by context.info(....
In the future the Context class will carry more than just the log context.
Change-type: patch
Signed-off-by: Carol Schulze<EMAIL_ADDRESS>

@balena-ci I self-certify!

@balena-ci rebase

@balena-ci retest

@balena-ci retest


feat: add --quiet flag

This PR addresses #28, adding a --quiet flag. Note this quick implementation is not a --silent flag, does not allow -QQ, and also does not include a --verbose flag. These would require further discussion.

@camlloyd Thank you for the PRs!! Very much appreciated.

See v0.9.0


Avoid unexpected http resource cache hit

See https://github.com/gradle/gradle-private/issues/1273
Since different tests share the same user home, some unexpected cache hit
might happen when two different test resources are assigned same port.
This PR uses unique resource name to avoid that.

That's fine as well. Used UUID to introduce some uniqueness.

Thanks @marcphilipp @oehme !


Tutorial or requirements to compile our own tweaks or port others

I would like a list of steps and/or at least a requirements list on how to compile our own tweaks or port other existing ones.
Also, can we modify tweak dylib's from Cydia and port them for TweakApp? I kinda want Cercube 3 for example.

If you really need some help I prob. could help you somewhere. I'm also in the learning mode, and trying to figure out how things works but I already know at least how most of it works


[BUG] Shaders interfering with Auroras

Mod Version: 1.11.2-<IP_ADDRESS>
Forge Version: 1.11.2-<IP_ADDRESS>8
Link to crash log (if applicable): NONE
Description: This happens a lot in coldest of areas. I tried with every shader I could try and use and it just causes random errors to the Aurora. (Flickering, almost invisible, making your screen turn black, weird coloring.)
I hope you can fix the Aurora rendering code to not interfere with shaders. That's how much I can explain.
Screenshots
http://prntscr.com/fekeh4
That's how much I can get on one shaderpack. No other causes this error. It appears almost invisible and flickers.

Duplicate of [#68].  Not much I can do.  Shaders want to own the sky.  You can turn off Auroras in Dynamic Surroundings.  Note that this is a common compatibility issue between mods and shader packs.


[Schema] Gurantee between Company entites?

Some good points from @rickatultipa,

The schema looks good in the initial draft, and there are a few tweaks may help expand the schema to cover broader-spectrum fintech scenarios:

If Person entities can have "guarantee" relationships, Company entities also have that in corporate guaranteed loan scenarios.
As you indicated Loan is a special kind of Account, for loan applications, Medium signin relationships are also tracked.
Account seems to be very general in the initial draft, we might want to consider 2 special kinds of accounts -- ATMs and POSes, as these 2 are frequently encountered in all card transactions scenarios.
Lastly, we might want to clarify the specification of all 10 types of relationships, particularly the attributes assigned to each type of relationship.
Hope my inputs make sense, cheers.
Ricky

Remained issue:

If Person entities can have "guarantee" relationships, Company entities also have that in corporate guaranteed loan scenarios.
Lastly, we might want to clarify the specification of all 10 types of relationships, particularly the attributes assigned to each type of relationship.

They will be updated to the docs


Problem with Unicode characters in destination path

When I invoke the command with non-ascii characters in the destination path, there seem to be problems. For example,
mengyibai@my_computer:~/软件/icloud_photos_downloader$ ./download_photos.py ~/ 图片/iCloud_Photos
In this case, the following error would occur:
Traceback (most recent call last):
  File "./download_photos.py", line 252, in <module>
    download()
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "./download_photos.py", line 144, in download
    download_path = local_download_path(photo, size, download_dir)
  File "./download_photos.py", line 211, in local_download_path
    download_path = os.path.join(download_dir, filename)
  File "/usr/lib/python2.7/posixpath.py", line 73, in join
    path += '/' + b
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 16: ordinal not in range(128)

and the program would terminate. However, if the destination path is changed to pure ascii, the program would run smoothly. The non-ascii characters in the path of the script appear to have no ill effects.

Hi, thanks for reporting this issue! It was working fine on Python 3.6, but this crash was happening on Python 2.7.
I've pushed a fix for the directory encodings on Python 2.7. Please update to the latest version of this script and try again. Thanks!


Still developing this?

Looks like it's been a while since there was a commit. Are you still using this? Still developing it?
Thanks for making a typescript version. I didn't immediately find it, but glad I did. Noticed a broken link on npm to tellojs instead of tellots, submitting a PR now.

Hi. No I don't use this now. I had two failures in the tello motors (never flew outside, never hit on wall, only for educational purposes in home) and they told me that it was my fault and I couldn't use the warranty. First time if fixed myself but the second time I gave up everything!


ng update: support for Angular 15

I have followed the Angular Update Guide to add support for Angular 15.
The demo project (npm run demo) seems to work without any problems.

I'll take a look and merge/publish it hopefully this week. Thanks!

@reblace Is there a chance to look at and merge/publish it this week? I would like to use this package in my project and I'm just waiting for the new package.
Thanks in advance!


Couldn't find what versions of SP this works with

I have SP2013 and my retrieve folder and populate local workspace options are not working.
I entered  {
"sourceDirectory": "src",
"sharePointSiteUrl": "http://XXXX.net",
"publishingScope": "Major",
"authenticationType": "NTLM"
} in the SPGO.json file.
Nothing happens after I enter in my user name and password

Hello @kenhughlee -
VSCode introduced a bug with the 1.31 release which broke NTLM authentication for SPGo.
A workaround to get you up and running is to disable the proxy settings in VSCode settings. You can find more details here: https://github.com/readysitego/spgo/issues/73#issuecomment-462961401

Thanks for the quick response!  I went ahead and tried setting the Proxy to 'on', and I restarted VScode and it still did not work.  I wish there was an error message or something, but nothing happens.

Never mind.   I used retrieve folder and it worked!  Thanks  !!

I don't know if this is a VSCode issue or if just part of my code didnt get migrated, but wherever I have XSL code, the rest of the code gets cut off.  Do you know why this is happening?


CSS files cleanup

Make sure that:

Single line comments are preceded and followed by 1 empty space
Block comments are preceded by 2 empty spaces and followed by 1 empty space
Selectors are ordered alphabetically

Assigning to @bp323 for review

Coverage remained the same at 100.0% when pulling b86e8c4ea112910efbca70fc06abf89c4414e6c6 on Coenego:cssCleanUp into 8d1c14634e962119c0bd9aeb5b45b11e424c0915 on CUL-DigitalServices:master.

Merged


Restructure kafka client into backup

About this change - What it does
This PR restructures some of the components in Guardian so that the dependencies are minimized. This is mainly a result of working on https://github.com/aiven/guardian-for-apache-kafka/pull/83, as it turns there are configurations/components which are mandatory that shouldn't be, or are in the wrong module.
Regarding the cli feature, without this PR we run into the problem where we are forced to write configurations which dont make sense (i.e. compaction-bucket for backup) or in other cases we there is no configuration for options we do need to provide (i.e. group-id)
Why this way
The PR is split into 3 commits, each complaining the reasoning behind the change

Move KafkaClient into core-backup: KafkaClient is a KafkaConsumer that listens to a Kafka cluster, strictly speaking this functionality is only needed for backing up of data hence why it was moved to core-backup instead of just core. One of the reasons behind this test was the fact that certain Kafka configurations such as bootstrap-servers are global for every component but others such as group-id (aka consumer group) only exist for Kafka consumers and not producers (i.e. restore).
Add kafka-group-id config into Backup config: This adds group-id configuration as a core config into the backup-core Backup configuration. Interestingly Kafka configuration with alpakka is all over the place, some configurations such as bootstrap-servers have a default config in reference.conf that can be overridden, others such as group-id have no Typesafe configuration at all. Since there is no non-programmatic way to configure group-id we added it into our own config.
Remove compaction-bucket config from core-s3: This configuration was placed into the wrong project, it should rather belong in compaction-s3/restore-s3 since thats the only place where this bucket will be used. Note that only the S3 case class that is serialized from the typesafe config had the configuration option removed, the path for the compaction-bucket will still be contained within the s3-config path in reference.conf its just that the config will be placed in the reference.conf of other projects (and this will work fine since typesafe config naturally supports merging of configs).

Note that in the future when compaction is done, a further restructure will be needed since compaction actually doesn't require a kafka at all (it just moves around data in the configured storage using postgres to do the compaction).
However this is not necessary right now so we will burn that bridge when we get there.


Handling default networks (bridge, null, host) with local store

Pushing this fix to chenchun's branch to make it easy to update
the PR https://github.com/docker/libnetwork/pull/466.
Please test it out before merging it in your branch.
With the introduction of Local store, we store all the networks and
endpoints created for all the locally scoped objects.
But, the default networks are special. On daemon start, docker will
install the 3 default networks (docker0 bridge, null and host). But,
since we restore the networks from the local store in controller.New()
the actual network creation from Daemon will fail. Hence, we need to
handle that scenario. To add more to it, the user could have changed
the bridge configuration in docker daemon configuration. Hence the
NewNetwork call from the docker daemon must be honored and at the same
time we have to retain the network ID and endpoints stored in the
local-db.
The solution is to introduce a new state called started for the
controller & playback the network and endpoint states from the datastore
only when the Start() is called. Between the New() and Start(), the
Daemon can create the special networks which will be adjusted with the
local states & installed by merging the latest configs with the saved
data.
Signed-off-by: Madhu Venugopal<EMAIL_ADDRESS>

Also I've found a strange problem with boltdb. Have tested with your PR, I found bridge network will be persisted twice if recreating network after restarting.
kv := makeBoltDBClient(t)
assert.Nil(t, kv.Put("TestBoldDBStore", []byte("1"), nil))
pair, err := kv.Get("TestBoldDBStore")
assert.Nil(t, err)
assert.Equal(t, string(pair.Value), "1")
assert.Nil(t, kv.Put("TestBoldDBStore", []byte("2"), nil))
pair, err = kv.Get("TestBoldDBStore")
assert.Equal(t, string(pair.Value), "2")
kv.Close()
kv = makeBoltDBClient(t)
pair, err = kv.Get("TestBoldDBStore")
assert.Equal(t, string(pair.Value), "2")
assert.Nil(t, kv.Put("TestBoldDBStore", []byte("3"), nil))
pairs, err := kv.List("TestBoldDBStore")
assert.Nil(t, err)
assert.Equal(t, len(pairs), 1)
assert.Equal(t, string(pair.Value), "3")

Boltdb backend fails at the last assert. It's too late today. I will take a look tomorrow.

Tested with bridge network with the following tests
func TestLocalRestore(t *testing.T) {
	defer os.Remove(defaultLocalStoreConfig.Client.Address)
	netOptions := []config.Option{}
	netOptions = append(netOptions, config.OptionLocalKVProvider(""))

	ctrl, err := New(netOptions...)
	if err != nil {
		t.Fatalf("Error new controller: %v", err)
	}

	if err := ctrl.ConfigureNetworkDriver("bridge", options.Generic{netlabel.GenericData: options.Generic{}}); err != nil {
		t.Fatalf("Error initializing bridge driver: %v", err)
	}
	_, bipNet, err := net.ParseCIDR("<IP_ADDRESS>/16")
	if err != nil {
		t.Fatalf("Erorr %v", err)
	}
	netOption := options.Generic{
		"BridgeName":         "docker0",
		"EnableIPMasquerade": true,
		"EnableICC":          true,
		"AddressIPv4":        bipNet,
	}
	// Initialize default network on "bridge" with the same name
	nw, err := ctrl.NewNetwork("bridge", "bridge", NetworkOptionGeneric(options.Generic{netlabel.GenericData: netOption}))
	if err != nil {
		t.Fatalf("Error creating default \"bridge\" network: %v", err)
	}
	store := ctrl.(*controller).localStore.KVStore()
	if exists, err := store.Exists(datastore.Key(datastore.NetworkKeyPrefix, string(nw.ID()))); !exists || err != nil {
		t.Fatalf("Network key should have been created.")
	}
	ep, err := nw.CreateEndpoint("newendpoint", []EndpointOption{}...)
	if err != nil {
		t.Fatalf("Error creating endpoint: %v", err)
	}
	if exists, err := store.Exists(datastore.Key([]string{datastore.EndpointKeyPrefix, string(nw.ID()), string(ep.ID())}...)); !exists || err != nil {
		t.Fatalf("Endpoint key should have been created. ")
	}
	err = ctrl.Start()
	if err != nil {
		t.Fatalf("Error starting controller: %v", err)
	}

	store.Close()

	ctrl, err = New(netOptions...)
	if err != nil {
		t.Fatalf("Error new controller: %v", err)
	}

	if err := ctrl.ConfigureNetworkDriver("bridge", options.Generic{netlabel.GenericData: options.Generic{}}); err != nil {
		t.Fatalf("Error initializing bridge driver: %v", err)
	}
	nw, err = ctrl.NewNetwork("bridge", "bridge", NetworkOptionGeneric(options.Generic{netlabel.GenericData: netOption}))
	if err != nil {
		t.Fatalf("Error creating default \"bridge\" network: %v", err)
	}

	err = ctrl.Start()
	if err != nil {
		t.Fatalf("Error starting controller: %v", err)
	}

	if len(nw.Endpoints()) != 1 {
		t.Fatalf("num of endpoints should be 1")
	}
}

When loading endpoints from local store after restarting, bridge driver will return error  https://github.com/docker/libnetwork/blob/master/drivers/bridge/bridge.go#L860

@chenchun this is a very useful test and it caught another fundamental problem in bridge driver.
I have pushed a new set of changes (including a slight modification to this test).
Since the started mode is added just to handle the case of adding default networks and it is NOT intended to have containers active in that phase, I added code to fail any endpoint create during this phase and modified the test to honor this.
But now, the issue is in bridge driver (https://github.com/docker/libnetwork/blob/master/drivers/bridge/bridge.go#L887). The restore is happening properly, but the bridge driver refuses to honor the request due to the above restriction. ping @mrjana @aboch for suggestions on the best way to handle this basic scenario.
@chenchun in the meantime can you please give it a try and give feedback on the existing fix ?
We need to get this in ASAP. multiple PRs are pending on this one :(

@mavenugo I will update the original PR very soon

@chenchun if you update the original PR, it will fail due to https://github.com/docker/libnetwork/blob/master/drivers/bridge/bridge.go#L887 (as I included your test along with my code). If you can find a way to resolve this issue in bridge driver, then we are good to go I think. Essentially we have to make bridge driver honor the endpoint info from libnetwork core.

@mavenugo updated PR https://github.com/docker/libnetwork/pull/466. I tested TestLocalRestore locally and it's passed. I've also test against docker, everything seems ok.

@chenchun thanks a ton. I gave 1 final comment : https://github.com/docker/libnetwork/pull/466#discussion_r38899573. Can you please address that in your commit ?


Switch to etcd-druid-api

How to categorize this issue?
/area dev-productivity
/kind enhancement
What would you like to be added:
Are there any plans in switching the etcd-druid dependency to etcd-druid-api?

As discussed via chat there are mainly two prerequisites missing to switch to etcd-druid-api:

Release of https://github.com/gardener/etcd-druid-api
Drop validation dependency via https://github.com/gardener/etcd-druid/issues/409.

/cc @shreyas-s-rao @unmarshall

We are planning to switch to the new API repo in 2 phases:

Current version of API is v1alpha1 which will continue to be there in the new github project. etcd-druid will consume this version currently. Once that is done then we can start to also adapt g/g to consume the API repo directly thus removing the current cyclic dependency between the two repos.
We have started work on creating v1beta1 of the API which has a LOT of breaking changes. This will be require some additional support like api conversion-webhook to enable support for both versions for some time. I am expecting a tentative timeline of first quarter for that.

Thanks @unmarshall for the update.

I guess we can then close/freeze this issue for now.

/close
We will revisit this topic once the said prerequisites are solved.


fix(tcp_transport): fix buffer overflow in ws connect (IDFGH-13250)

This fixes a buffer overflow in ws_connect when the HTTP response size equals or exceeds WS_BUFFER_SIZE (1K by default).
This easily reproducible with heap corruption detection (light impact is enough) and a large HTTP response  received in one chunk and/or a header exceeding 1K. This happens typically when there's a HTTP error status code which contains a body.
Example:
D (24887) transport_ws: Read header chunk 1024, current header size: 1024
D (24897) transport_ws: HTTP status code is 404
E (24897) transport_ws: Sec-WebSocket-Accept not found
E (24897) websocket_client: esp_transport_connect() failed with -1, transport_error=ESP_OK, tls_error_code=0, tls_flags=0, esp_ws_handshake_status_code=404, errno=119
CORRUPT HEAP: Bad tail at 0x3fce54bc. Expected 0xbaad5678 got 0xbaad5600

assert failed: multi_heap_free multi_heap_poisoning.c:279 (head != NULL)

I observed this on v5.2.2 and v5.3-rc1.
Since v5.2.2 there have been some changes (most notably https://github.com/espressif/esp-idf/commit/2267d4b6b5792c37577cdc2fe963868f6e055621) but the overflow is still there. If you want I can backport this targeting v5.2 too, not sure what the convention is here.
There are multiple solutions here. I picked the one that assumes that the last byte of ws->buffer will always be \0, so it reads one byte less from the transport. I guess that strnstr is not available.
@gabsuren

Looks like a duplicate of #14473

@bryghtlabs-richard this has already been fixed by 53e63eb1251, thanks.


Add more Json transformation pipes

One of them allows for filtering values out of the stream, which
includes to be cautious to be sure the emitted stream is still valid. We
have to make sure that the key was not emitted if the value is going to
be dropped. This introduces a way to delay the emission of a key until
we know for sure the value is kept.
Fixes #47

One minor comment, otherwise LGTM!

I'll had documentation before merging, probably tonight.


Add Path Replacement Rule

Replaces the old path with the new one and adds the old path to the X-Replaced-Path header.
My use case is to map to a FAAS web triggers (i.e. google cloud functions, aws lambda).

I agree with your suggestion to rename it, however I think you're missing the point of my changes. My reply to your comment further explains the idea.

Thanks, I got a clearer picture now. Makes total sense to me.
If you could do the rename and add a test or two, I'd be glad. :-)

I have made the changes, but I feel like one might want to customize the header that it is set to too.

@ssttevee do you the time to update this PR before the upcoming feature freeze for the 1.3 release?

I couldn't think of a good way to test the wireFrontendBackend method, but everything else should be done.

After investigating, I've concluded that setting r.RequestURI is unnecessary (maybe even erroneous). My reasoning is in this comment.
It will probably be best to remove all instances of this from the rest of code base to avoid future contributors copying it.

@ssttevee one last request: could you squash your commits for git hygiene reasons?

it's done!

I believe I found a possible bug, or at least a not intuitive behavior when ReplacePath rule is preceded by PathPrefixStrip
Basically because PathPrefixStrip is a Matcher, but also happens to be a Modifier as well, when combined with ReplacePath, like PathPrefixStrip:/management;ReplacePath:/health, due to the order in which the Modifiers are applied in server.go, the above rule-set does not behave as expected.
While one would expect that we match the request to /management url, strip the /management prefix, followed by a replace with /health.  This is NOT, however, what is happening.  The matcher does the job correctly and matches the request on /management and sends it down the correct Handler chain, but that's when the issue creeps in.
Because ReplacePath Modifier gets executed first in the Handler chain, it replaces /management with /health, and when StripPrefix Modifier gets called, it is trying to match the Path with /management prefix, and obviously failing to do so, thus returning 404-Not Found.
If the Rule is written as PathPrefixStrip:/management;ReplacePath:/management/health, then everything works, but the actual invocation URL Path ends up being NOT /management/health but /health, thus making this configuration be misleading.
Should I open a new Issue to track this improvement?

@aantono thanks for the report.
Please do file a new bug report and link it here. Appreciated!

Done... I'll try to see if I can make PR with a fix tomorrow.
My current thinking is to try to move the ReplacePath block in server.go to be the first in the chain, above the AddPrefix - https://github.com/containous/traefik/blob/master/server/server.go#L778
Thoughts?

@aantono sounds reasonable on first sight.
We should try to add a few tests to make sure the known combinations work as expected.

I still have the problem with the route replacements in the containous/traefik image.

@aantono What version of Traefik did you use for the workaround you mentioned (PathPrefixStrip:/management;ReplacePath:/management/health)?

That was the 1.3-RC1 (the one I used was downloaded from the releases page)


Works in Editor, Not in Export

Describe the bug
ERROR: get_node: Node not found: __InkRuntime
At: scene/main/node.cpp:1382.
To Reproduce
Export this project: https://github.com/lunarcloud/not-a-halloween-game/tree/inkgd
Expected behavior
To behave the same in export as editor - no find and use the static runtime node
Ink files
See "to reproduce"
Environment:

OS: Kubuntu 19.04
Inklecate version:(precompiled main.json)
inkgd version: ca863520ea5b3b13fd9c4872014b77c91cfa907b
Godot: 3.1.1 (Standard Version)

Additional context
I tested the linux and web exports on my machine.

Ouch @lunarcloud, that's definitely a big problem, thanks for opening the issue! I'll have a look this weekend.

I couldn't reproduce the issue with you project, but I managed to trigger it with the example project. The good news is that PR #9 should fix the issue. It was merged a few days ago, so can you give it a try with master/HEAD? If that works, I'll create a new release.

Yes, that fixed it for me
(verified after also wrestling with godot about including the json file in the export)

Awesome, I'll make a new release as soon as possible!


Problem with the first slot of the backpack

Invtweaks is always in my dev environment, I don't seem to be getting these errors. Please provide a full mod list!

This is a list of my mods
lme_export.txt

Invtweaks is always in my dev environment, I don't seem to be getting these errors. Please provide a full mod list!

This is a list of my mods lme_export.txt

Sorry for the follow up, but could you send me a link to a zip folder containing all of your mods? There's a lot of possible offenders here.

The Offhand slot still does not render correctly with the Satchels mod, and the error can still be reproduced with inventory tweaks in Backhand mod v1.2.1 after the Satchels mod is removed

This is the unofficial version of the Inventory Tweaks mod that I use:https://github.com/GTNewHorizons/inventory-tweaks

This is all my mods: https://drive.google.com/file/d/1rwgeqLDhTmVXkZK824Pa3bowmZ3_6YHN/view?usp=share_link

Here's my config file, if you need it, in case you crash my mods due to id conflicts while testing them :)
config.zip


Get this plugin Verified

This plugin is currently not listed as a Verified plugin in Homebridge.
On Reddit and Discord, I've seen people be a bit confused/afraid when it comes to "unverified" plugins (even though they might be perfectly okay).
I must admit that I myself also tend to choose a "verified" plugin if I have to choose between that and an "unverified" one.
The plugin must meet the following requirements in order to be verified:

[x] The plugin must successfully install.
[x] The plugin must implement the Homebridge Plugin Settings GUI.
[x] The plugin must not start unless it is configured. (Implemented a DynamicPlatformPluginand have a small helper in index.ts just like the verified homebridge-ring plugin)
[x] The plugin must not execute postinstall scripts that modify the users system in any way.
[x] The plugin must not contain any analytics or calls that enable the plugin developer to track you.
[ ] The plugin must not throw unhandled exceptions, the plugin must catch and log it's own errors. ➡   Currently throws an unhandled exception in case the Zigbee2MQTT version is too old. This can be replaced with frequent log entries instead.
[x] The plugin must be published to npm and the source code available on GitHub.

[ ] A GitHub release - with patch notes - should be created for every new version of your plugin. ➡    Need to figure out how to automate this and reuse the information from CHANGELOG.md automatically

[x] The plugin must run on all supported LTS versions of Node.js, at the time of writing this is Node.js v10, v12 and v14. (GitHub checks run npm run build and npm run test on node 10.x, 12.x, 13.x and 14.x)
[x] The plugin must not require the user to run Homebridge in a TTY or with non-standard startup parameters, even for initial configuration.
[x] If the plugin needs to write files to disk (cache, keys, etc.), it must store them inside the Homebridge storage directory. (not applicable)

I'll give release-it a go to see if I can automate the GitHub releases within my existing "release flow".

I'll give release-it a go to see if I can automate the GitHub releases within my existing "release flow".

This plugin is now officially verified! 🥳🎉🎈


[MRG] If looking for latest MRAN URL try earlier snapshots too

Related to https://github.com/jupyter/repo2docker/issues/773#issuecomment-586571022
The particular issue I ran into today is a missing "latest" MRAN snapshot in the Travis R tests. This PR automatically tries older snapshots in this case.
What's not clear to me from the linked issue is whether the test failures mostly occur due to a missing latest snapshot (this PR should help), or whether it's due to a broken MRAN server for a snapshot that definitely exists.
Example:
$ repo2docker tests/r/description-file/
Picked Local content provider.
Using local repo tests/r/description-file/.
Failed to get MRAN snapshot URL https://mran.microsoft.com/snapshot/2020-02-13: 404 Not Found
Using RBuildPack builder

I hadn't considered the idea that the problem is missing snapshots and not MRAN being "down". So no data/expertise to offer unfortunately.
I think if the user hasn't specified a date we should try a few days into the past to increase the chances of things working.

Could you add a test for the new method? Maybe something that uses a mock to remove the dependency on MRAN being available.
Our coverage has been slipping below (the arbitrary mark of) 90% so we need to start being a bit more keen to add tests to reverse that trend.

Thanks, for reviewing, I'll add a test.

Done! Though it's failing due to MRAN being down 🤣


Add unimplemented client library functions

Last a few calls in #924 including:
set_bootdev
metadata_set
metadata_delete
Changes including:
hil/cli.py
hil/client/node.py
test/unit/client.py
No docs changes needed.

You've got some build failures, but this looks basically sensible to me.


v2

Refactor (...args) => (prevState) => ({ newState })
to (prevState, ...args) => ({ newState })

Pull Request Test Coverage Report for Build 19

1 of 1 (100.0%) changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build 18:
0.0%

Covered Lines:
19

Relevant Lines:
19

💛  - Coveralls

👍


Do not hide pet overview details for fosters

Description
At /staff/pets/:id, when a pet has a match, we remove some details from the overview table. These should not be removed if the match type is "foster".
Before match:

After match:

Acceptance Criteria

[ ] Fix conditional so that it checks for Matches with type :adoption only

I'd like to work on this!


#1078 solution proposal 2 implementation

proposed change allows to replace default MigrationResolvers.
The implementation takes into account backward compatibilty

inactive


Drop Logging.jl

Julia 0.7 is having improved logging abilities so we can safely drop
this.

Coverage decreased (-0.2%) to 94.558% when pulling 5ced9820b6e2fb8233b8ddf3d811d10ab4e6608f on drop_logging into 90fcf2cd0ac534bc5837a1d6a70c039006690b9f on master.


Domain Type implementations needed by IBC

Following domain types and TryFrom/ From implementations are needed for (de)serialization of client IBC messages:
tendermint_proto::types::SignedHeader <===> tendermint::block::signed_header::SignedHeader
tendermint_proto::types::ValidatorSet <===> tendermint::validator::Set
tendermint_proto::abci::ConsensusParams <===> tendermint::consensus::params::Params
Required for https://github.com/informalsystems/ibc-rs/issues/277

SignedHeader and validator::Set are implemented on the greg/research-json branch.

All three are now implemented in #639 . Some of it was unused before, so if you find any issues we can fix / change the structs in followup issues.


packer template name?

was thinking it was image_name, but that doesn't seem to name the packer template name approperatly, am getting a random Packer* name for the vm as its creating it?   Also, is there a way to convert the vm to a template now that nutanix has a "template" feature?

image_name will be the name of the output image the one you fill find in the image library
vm_name can be used to choose the temporary vm name , if not specified it revert to a rancher packer-* name
i just check and this information is missing in the doc, I will punish the guilty person  and of course correct the documentation.
thanks for the catch

@darthVikes
concerning template support this is a valid feature request we need to explore
can you add a separate issue to track it
thanks


MatrixBoxPresenter: Use show_link_args again

During the controller refactor, show_link_args was the source of a lot of snafus. Now that controllers are "normalized", I understand why this was breaking sometimes. Using the old method simplifies the code quite a bit.
This PR also switches the extra args I've added to the presenter, for link_type, link_method and identify to keyword args.

Coverage: 93.54%. Remained the same when pulling 2c5470ac90036c410a9a0ac33d2d3d076996a0e2 on nimmo-matrix-box-presenter into 8d2e3f8955da3051e4e831201234a62e606b10c9 on main.


Implementing MVC architecture for the server

Objective:
The objective for this is to refactor the existing application to adhere to the Model-View-Controller (MVC) architecture. This is aimed at improving code maintainability, scalability, and separation of concerns.
I will make models, controllers and routes directory in the server for modularity in the code as everything is written in a single file (index.js) which is making the code difficult to understand for the contributors.
Scope:

Model: Define the data structure and business logic. This includes setting up models for various data entities and ensuring proper data validation.

Routes: Implement routes for the app.

Controller: Implement controllers that handle user inputs, update the model, and return the correct view. Controllers will act as i

If you want me to make these changes, please assign me this task with the particular labels.

@Sonalgupta2005  we have already implemented the mvc architecture to the server


Proposal do capnproto integration

Let me Explain a bit there is a concept called capability based function invocation the concept is simple you send some well known protocol like grpc but faster and then let the remote operate on the local data and not send the data.
https://github.com/capnproto/node-capnp for a quickstart while https://github.com/capnproto offers much more i only want to open your mind for that so we can distribute capnproto and create this ways distributed functions as a service something like etherium only for your interrest i would love to join the project if you like the concepts
i also adopted your project into my @stealify/ stack and i fixed your streaming problems with electron and all that as my stealify stack is a interop build tool that is able to integrate fast into any software via multiple interfaces.

Unsure what you are asking, technically. This repo is for Hypercore technical development. If you want to discuss high level ideas join our Discord. I'm always in https://discord.com/invite/holepunch

(Closing since not technical, feel free to re-open, if you have a technical question or I misunderstood)


Use a separate template path.

My idea is to make one matrix field with several components that can be used on many places. For that reason I want to have all my template, that are able to select, in one separated folder called components. In that folder I want to have sub-folders that contains all possible template for each component. Something like this:

So I add the template select field and set the sub-folder to component/textAndImage/. So when I go to my Homepage and select a template imageOnLeft.twig save it, and then I try to load the page I get this error:
Unable to find the template “imageOnLeft.twig” in "homepage/_entry" at line 5.
So instead to include component/textAndImage/imageOnLeft it just include imageOnLeft.twig.
Is it possible somehow to include the Limit to subfolder + Selected template instead just Selected template?

This is now available with v5.0.0.
These are the different options now:
Output the chosen template name:
{{ entry.fieldHandle }}

Include/Embed the chosen template:
{% include entry.fieldHandle %}

Include the template including subfolder if set:
{% include entry.fieldHandle.withSubfolder() %}

This is a alias for the following:
{{ entry.templateWithSubfolder.template(true) }}

Output the subfolder name:
{{ entry.fieldHandle.subfolder() }}

Output the filename without path:
{{ entry.fieldHandle.filename() }}


Sign packages

In the current implementation there is some code that allows import of keys. It is not completed.
Command that generates and install keys
abuild-keygen -a -n -q -i
Shell script that wraps openssl
/usr/bin/abuild-keygen
Rule that generates keys externally, and then integrates with Alpine.
keygen:
mkdir -p $(CWD)/tool/pki
openssl genrsa -out $(CWD)/tool/pki/iafw.rsa 1024
openssl rsa -in $(CWD)/tool/pki/iafw.rsa -pubout > $(CWD)/tool/pki/iafw.rsa.pub
chmod 755 -R $(CWD)/tool/pki

Two issues in the current implementation.

Add public key in /etc/apk/keys.
Adjust directory structure

$ podman run -i -t -v "$(CWD)/tool/pki:/etc/apk/keys"  -v "$(CWD)/product/apk.fx/:/download" alpine_sandbox_base_os:3.16.1
All public repo keys from Alpines repositories could be removed and replaced by the public signing key generated by openssl.
ls /etc/apk/keys/
iafw.rsa.pub
/ # apk  add openssl-dbg
..
(1/1) Installing openssl-dbg (1.1.1v-r0)
OK: 21 MiB in 26 packages
$(CWD)/product/apk.fx/
└── v3.16
├── community
└── main
└── x86_64
├── agetty-openrc-0.44.10-r7.apk
├── alpine-baselayout-3.2.0-r23.apk
├── alpine-baselayout-data-3.2.0-r23.apk
├── alpine-conf-3.14.6-r1.apk
├── APKINDEX.tar.gz


set-Gps to one or more photos: Pick Gps from existing photo with gps-info

Is your feature request related to a problem? Please describe.
I would like to put geo-infos(gps-latitude/longitude) to one or more selected photos
Describe the solution you'd like
Some photos already have geo-infos so it would be cool, to say that the selected photos should get the same geo-infos as an other photo.
Suggested Workflow

Menu "Select"
Select one or more photos, that should receive the same geo-info.
Menu: Edit/EditLocation
Select: (new feature): Copy locaton from other photo
A New Photo Search Dialog appears that only shows those Photos, that have a geo-info
select a reference photo and press ok
==> The selected photos get the geo-infos

For reference see https://github.com/k3b/APhotoManager/wiki/Howto-geotag-multible-photos

You can already do so. I'm surprised you haven't seen it as it's already like the workflow you suggested.

Oh sorry. I saw this "feature" but was not aware, that i get an image chooser when i click on the "-->"-photo.

True, i missed that.


Search npms.io changed

Currently using
https://npms.io/search?term=vue
But it changed to
https://npms.io/search?q=vue
https://github.com/michaelrambeau/bestofjs-webui/blob/fa6bc9794af0a3bf7d6a88f38be3c6d1d8190b21/src/components/projects/NpmSection.jsx#L42

Hello @Geczy , thank you very much, that's a good catch.
I'm going to fix the npms.io search URL right now.


Adding IASI observations to MPAS-Workflow

Description
This PR enables the assimilation of clear-sky IASI observations into the MPAS-Workflow. The corresponding yaml stubs were added following Emily Liu’s IASI QC from GDAS yamls: https://github.com/JCSDA-internal/ufo/blob/develop/ewok/jedi-gdas/iasi_metop-a.yaml. Two methods were implemented in mpas-jedi to determine the tropopause pressure needed in the the cloud detection filter for infrared observations. These were the Thompson and WMO methods adapted from the FV3-JEDI and WRFDA codes, respectively (PR #717). The default method used in the workflow is Thompson. It was also added the variational bias correction with the capability to use the most recent previous satellite bias correction coefficients created due to the existence of days with no IASI observations in RDA archives during 2018. Also, the ability to not assimilate the IASI observation if an observation file contains missing channel indices has been implemented. A new scenario was added to the workflow for the assimilation of IASI observations. A yaml containing the default built code was added to the workflow, which allows to easily change built codes between the experiments. From the 616 channels available in the observations files, only a subset of 174 channels is actually assimilated following GSI global_satinfo. However, since all observations are currently kept during the data assimilation (whether monitored or not), the list with only 174 channels was made the default for now.
IASI observations were downloaded from RDA archives on Cheyenne and converted to the IODA-v2 format using Jamie's obs2ioda converter for the 2018 and 2020 predefined period outside of the workflow. There are available hourly and six hourly files for 2018 and hourly files for 2020. The initial coefficients for the variational bias correction were also created offline for both periods.
Issue closed
Closes #57
Tests completed

[x] 3dvar_OIE120km_WarmStart
[x] 3denvar_OIE120km_WarmStart
[x] 3dvar_OIE120km_ColdStart
[x] 3denvar_O30kmIE60km_WarmStart
[x] eda_OIE120km_WarmStart
[x] IASI120km3denvar

@ibanos90, you could add IASI to one of the automated tests to make sure the functionality gets exercised.

Sure! I can do that.

@ibanos90, you could add IASI to one of the automated tests to make sure the functionality gets exercised.

Sure! I can do that.

Up to you.  I can approve now if that seems like a lot of work.

Considering Ivette will be the only user/tester of this IASI stuff for a while, I suggest not spending time to make scripts generic for other purposes. More important is to obtain results and conclude this task.

Oh I meant to just add IASI to the existing 120km 3denvar test, not to add an extra test.

Considering Ivette will be the only user/tester of this IASI stuff for a while, I suggest not spending time to make scripts generic for other purposes. More important is to obtain results and conclude this task.

I would like the functionality to be merged so that an old branch does not get out of date in the next 3 months or longer before we revisit this effort.

Oh I meant to just add IASI to the existing 120km 3denvar test, not to add an extra test.

Sorry, I misunderstood. Could you please verify if the changes I committed are what you asked?

Yes. This function should be merged. As I am not using it yet, I am not sure what this actually means. As there are quit a lot scenarios of running JEDI-MPAS with a new function, it could be more work to implement it for all scenarios (I am not sure). I just suggest you make a trade off (for now) about full vs. partial functionality if too much extra work is needed for full function. My sense for the workflow is to provide a good basis for people to adopt/modify it for their own applications, instead of making it a 'click to run' package without knowing it (good but beyond what we can do now).

@liujake, Ivette's work is entirely contained in her own scenario.  However, it is also very easy to adopt the IASI functionality to any scenario.  That is the nature of the overall design of the workflow, without adding much extra work.

@jjguerrette Sounds good! It is a bit scary in seeing 43 files touched without looking into them. :-)

Ran the tests again and all completed successfully.

Thanks for all your comments and suggestions @jjguerrette!

@jjguerrette Sounds good! It is a bit scary in seeing 43 files touched without looking into them. :-)

I agree that adding one instrument should not require modifying so many files.  There are some places to improve the workflow that would reduce that count some, but will wait to do it until we are doing other refactoring.
At least some of the files did not need to be touched in this PR (amsua-related), but the changes are needed eventually anyway.  If the tropopause pressure method was kept fixed instead of making it an option, that would avoid a couple files as well.  The IASI obs required changing how we handle missing channel numbers and also missing bias correction files, which will make radiance assimilation more robust in all our cycling scenarios.  So there were lots of little details that made IASI require special treatments that the workflow was not previously designed to handle.


Add a flattener for contracts

Current Waffle CLI usage
Waffle CLI is currently used by passing in a path to a config file and doesn't have any meaningful options.
Usage:

    waffle [config-file] [options]

    Compiles solidity source code

  Config file:

    Read more about the configuration file in the documentation
    https://ethereum-waffle.readthedocs.io

  Options:

    --help, -h      Display this message

Possible solutions
1. Add waffle flatten and waffle compile CLI options and make waffle invocation default to waffle compile.
Usage:

    waffle [compile|flatten] [config-file] [options]

  Config file:

    Read more about the configuration file in the documentation
    https://ethereum-waffle.readthedocs.io

  Options:

    --help, -h      Display this message

Pros:

Easy to transform into third approach

Cons:

User must provide multiple configs (for compile and flatten)
Increased complexity: compile and flatten configs should have separate formats to not introduce confusion. Not every field from compile config is used for flattening (e.g. compilerVersion or outputType)

2. Add single option to waffle config flattenOutputDirectory.
Usage would be the same as currently
Cons:

if we add flattenOutputDirectory it would make more sense to rename outputDirectory -> compileOutputDirectory
user may want to flatten only some of the files from sourceDirectory and would end up creating a separate config file anyway

3. Add support for multiple configurations along with waffle flatten and waffle compile commands (involves: #209)
The configuration format would now allow adding multiple configurations in an array. Passing a single configuration object would still be possible to maintain backwards compatibility.
[
  {
    name: "old contracts",
    type: "compile",
    compilerVersion: "0.4.19",
    sourceDirectory: "src/old-contracts",
    outputDirectory: "dist/old-contracts",
  },
  {
    name: "new contracts",
    type: "compile",
    compilerVersion: "0.6.3",
    sourceDirectory: "src/new-contracts",
    outputDirectory: "dist/new-contracts",
  },
  {
    name: "flatten",
    type: "flatten",
    sourceDirectory: "src/new-contracts",
    outputDirectory: "dist/new-contracts/flat",
  },
]

New optional configuration fields would be added:

name (default: #1 position in array) - for better printing of waffle processing progress
type (default: compile) - for choosing processing action: compilation or flattening of contracts from sourceDirectory

The new usage of Waffle CLI would look as follows:
Usage:

    waffle [compile|flatten] [config-file] [options]

  Config file:

    Read more about the configuration file in the documentation
    https://ethereum-waffle.readthedocs.io

  Options:

    --help, -h      Display this message

Invoking waffle compile command would run only configs with type compile.
Invoking waffle flatten would run only configs with type flatten.
Invoking waffle would run all specified configurations.


Adding check if apikey,pw,sessionId and encoder should be resetted

1. Why is this change necessary?
Getting one user by API should return API key, password, sessionId and encoder instead of always unsetting it. As implemented in the getList method a check will make sure if the user has create and update privileges.
2. What does this change do, exactly?
Checks if the user has create/update privileges
3. Describe each step to reproduce the issue or behaviour.
Getting one user never returns the API key, password, sessionId or encoder
4. Please link to the relevant issues (if any).

5. Which documentation changes (if any) need to be made because of this PR?
6. Checklist

[ ] I have written tests and verified that they fail without my change
[x] I have squashed any insignificant commits
[ ] This change has comments for package types, values, functions, and non-obvious lines of code
[x] I have read the contribution requirements and fulfil them.

Hello,
thank you for creating this pull request.
I have opened an issue on our Issue Tracker for you. See the issue link: https://issues.shopware.com/issues/SW-22591
Please use this issue to track the state of your pull request.

Hi @Isengo1989, thank you for your contribution! 💙


Custom config.*.yaml files - support new variables

Is there an existing issue for this?

[X] I have searched the existing issues

Run a Diagnostic and Paste Link Here
It should be possible, to introduce new variables within a extended config file config.*.yaml
For example, if I use the following file (extract, not full):
config.solr.yaml
...
typo3_solr_ext_path: 'htdocs/typo3conf/ext/solr/Resources/Private/Solr/'
typo3_solr_configset: 'ext_solr_11_0_0'
hooks:
 post-start:
   - exec: |
       SOLR_EXT_PATH=(`yq e '.typo3_solr_ext_path' .ddev/config.yaml`)
...

The hook does not know about the "typo3_solr_ext_path".
If I use this configuration in the main config.yaml - all works fine.
Expected Behavior
New variables, introduced in config.*.yaml files should be read and made usable too.
Actual Behavior
This does not seem to happen - only merge or override of existing variables
Steps To Reproduce
No response
Anything else?
No response

Hi @detrax - This is a result of how bash works. When you set an environment variable in bash, it only exists until the end of the bash session. In your case, that's the end of the SOLR_EXT_PATH= statement, it does not live on past your exec.
If you want to set a variable dynamically, you'll probably have to do it another way. For example, you can write the generated value to a file and load it and inject it into the environment later.

@rfay - yes, I agree. The BASH variable will only be valid during that BASH session. But this is not what I meant :-) Maybe the example with the hook was a bit misleading.
I will try to explain two things, which seem be related. The "problem" seems to be in the merging of "default" config values with the ones from config.yaml and config.*.yaml. As new config values vanish during this process.
We have some additional values set in config.yaml. For example these two:
config.yaml
typo3_solr_ext_path: 'private/typo3conf/ext/solr/Resources/Private/Solr/'
typo3_solr_configset: 'ext_solr_10_0_0'

This work fine and those are available inside the DDEV Environment - e.g. in a custom web-command
ddev createsolr
.ddev/commands/web/createsolr
#!/bin/bash

## Description: Create the solr cores for the project
## Usage: createsolr
## Example: ddev createsolr

SOLR_EXT_PATH=(`yq e '.typo3_solr_ext_path' .ddev/config.yaml`)
...

I can access and use them. Everything works fine this way.
BUT:
If I declare those values inside of an config.solr.yaml - they are not available. The merging of the configurations files seems to be limited to predefined values only. So new configuration values are ignored, if "merged in" via config.*.yaml.
ANOTHER ISSUE
If we define both variables in config.yaml (as above) it works.
BUT:
If the configuration is changed via ddev, they are removed. For example, if
ddev config --xdebug-enabled
is called, only the "default" values remain in the file. All custom set variables (the solr configuration in this case) is gone.

AFAICT, this isn't about merging I don't think. It's about dynamic environment variables in docker-compose. I don't think you'll find that they're supported, https://docs.docker.com/compose/compose-file/
You said

We have some additional values set in config.yaml. For example these two:
typo3_solr_ext_path: 'private/typo3conf/ext/solr/Resources/Private/Solr/'
typo3_solr_configset: 'ext_solr_10_0_0'

But those aren't values, those are (illegal and unsupported) keys in the docker-compose, right?
I'm afraid I don't understand why you think you can do what you're doing here. But if you give a full example, perhaps with a gist, maybe I can help point the way. But do take a look at the compose spec, and please do try for simple techniques to demonstrate the problem.

The values I am talking about are in the ".ddev/config.yaml" file (see file). Is this a docker-compose file?
Fact is, the variables are available to custom ddev commands, if they are written in the projects ".ddev/config.yaml". So I guessing, that they are valid there. But I may be wrong.
The whole file is here : config.yaml

I'm baffled what you're up to.
None of these are part of the DDEV config.yaml schema, nor is there a way I know of to use them.
typo3_solr_cores:
  - { name: core_customer_de, schema: "german/schema.xml" }
  - { name: core_customer_en, schema: "english/schema.xml" }
typo3_solr_ext_path: 'private/typo3conf/ext/solr/Resources/Private/Solr/'
typo3_solr_configset: 'ext_solr_10_0_0'

Perhaps you could make a simple demonstration repo that explains what you're trying to do in the simplest way. Neither yaml nor docker-compose is going to allow initialization of variables with dynamic constructs I don't think, but I'm quite sure there's a way to accomplish whatever it is you're after.

Ah.. I see. I checked again and made a mistake...

DDEV is not involved in this case - our DDEV custom command reads these values directly out of DDEVs config.yaml. In hindsight it might not be a good idea to mix configurations. Although is is nice to only have ONE file to configure the complete development environment.
So... the solution could be creating an own configuration file for the extra service - maybe config.solr.yaml.
And some more explanation for this case:
Yes, solr runs in its own docker-composer container, which is started together with the other containers by "ddev start". The initial configuration is done (once) with the ddev custom command I told you about.

Congratulations! I think you're on the right track. I think you probably want to put config into a docker-compose.*.yaml or use environment variables. Doing it in config.solr.yaml also would mean violating the schema.

That sounds like a good idea, as it belongs to the  docker-compose domain. Thank you!


Fix tzDate

Description:

This pr fix the wrong responds of tzDate.
For example, with the timezone in the test being America/New_York and the timezone to retrieve being Europe/Amsterdam, it means the difference in hours between the two time zones is +6 hours. However, the old tzDate returns -2.

Changed:

Set tzA of offset to default (UTC).
Jsdoc of tzDate

Added:

Add passing tests for tzDate

Hmm, perhaps there is some confusion here because as far as I can tell tzDate is doing exactly what it is supposed to. It creates a Date object for an unlocalized time (12:00 noon lets say). Perhaps the easiest way to see this is by using the same "wall clock" time and working our way around the globe:
import { tzDate } from "@formkit/tempo"

// UTC-1000
tzDate("2013-10-01T12:00", "America/Adak")

// UTC-0900
tzDate("2013-10-01T12:00", "America/Anchorage")

// UTC-0800
tzDate("2013-10-01T12:00", "America/Ensenada")

// UTC-0700
tzDate("2013-10-01T12:00", "America/Boise")

// UTC-0600
tzDate("2013-10-01T12:00", "America/Bahia_Banderas")

// UTC-0500
tzDate("2013-10-01T12:00", "America/Atikokan")

// UTC-0400
tzDate("2013-10-01T12:00", "America/New_York")

// UTC-0300
tzDate("2013-10-01T12:00", "America/Araguaina")

// UTC-0200
tzDate("2013-10-01T12:00", "America/Godthab")

// UTC-0100
tzDate("2013-10-01T12:00", "America/Scoresbysund")

// UTC+0000
tzDate("2013-10-01T12:00", "Africa/Abidjan")

// UTC+0100
tzDate("2013-10-01T12:00", "Africa/Algiers")

// UTC+0200
tzDate("2013-10-01T12:00", "Africa/Blantyre")

// UTC+0300
tzDate("2013-10-01T12:00", "Africa/Addis_Ababa")
tzDate("2013-10-01T12:00", "Asia/Tehran")

// UTC+0400
tzDate("2013-10-01T12:00", "Asia/Baku")
tzDate("2013-10-01T12:00", "Asia/Kabul")

// UTC+0500
tzDate("2013-10-01T12:00", "Antarctica/Mawson")
tzDate("2013-10-01T12:00", "Asia/Calcutta")
tzDate("2013-10-01T12:00", "Asia/Kathmandu")

// UTC+0600
tzDate("2013-10-01T12:00", "Asia/Bishkek")
tzDate("2013-10-01T12:00", "Asia/Rangoon")

// UTC+0700
tzDate("2013-10-01T12:00", "Antarctica/Davis")

// UTC+0800
tzDate("2013-10-01T12:00", "Antarctica/Casey")
tzDate("2013-10-01T12:00", "Australia/Eucla")

// UTC+0900
tzDate("2013-10-01T12:00", "Asia/Chita")
tzDate("2013-10-01T12:00", "Australia/Darwin")

// UTC+1000
tzDate("2013-10-01T12:00", "Antarctica/DumontDUrville")
tzDate("2013-10-01T12:00", "Australia/Adelaide")

// UTC+1100
tzDate("2013-10-01T12:00", "Antarctica/Macquarie")

// UTC+1200
tzDate("2013-10-01T12:00", "Asia/Anadyr")

// UTC+1300
tzDate("2013-10-01T12:00", "Antarctica/McMurdo")
tzDate("2013-10-01T12:00", "NZ-CHAT")

// UTC+1400
tzDate("2013-10-01T12:00", "Etc/GMT-14")

In fact tzDate should not in any way take into account the users timezone.
So as far as I can tell this is working properly, but I’m happy to fix any issues you find here so if you can show this is indeed incorrect in some way please let me know.

@justin-schroeder Thank you for your answer, but I'm still confused about when, why, and how to use tzDate in the real world ?

Sure — real world — someone is checking into a rental apartment in Tokyo. They are shown a datepicker of dates and times. They pick "3pm June 2nd" — their browser which was powering that datepicker was in Berlin germany. How can we get the Date object for the selected time.
tzDate('2024-06-02T15:00', 'Asia/Tokyo')
// Date: 2024-06-02T06:00:00.000Z

Is that example helpful?

To clarify, does your tzDate function receive a non-localized time along with a specified timezone? Is the provided timezone intended for the non-localized time, with the output being localized in the user's time zone?

tzDate('2024-06-02T15:00', 'Asia/Tokyo')
// Date: 2024-06-02T06:00:00.000Z

Your example indicates that 2024-06-02T15:00 is in  Asia/Tokyo, but you want to display it in the user's browser in Europe/Berlin, correct? Tokyo is in UTC+9, while Berlin is in UTC+1. Perhaps we should consider offsetting by 8 hours instead of 9?


GitHub Code Scanning shows all vulnerabilities

After this https://github.com/aquasecurity/trivy-action/pull/73 all the vulnerabilities show up in the Code scanning alerts.
I see from the PR that this is a feature, but now all the images are flagged as vulnerable even though there isn't a fix available (OS packages).
Should this feature take into consideration the ignore-unfixed flag?
Or how is this supposed to work? Because at the moment we have 400+ alerts that we can't fix in any way since those packages are in the base image and don't have a fix.
Thanks!

Thank you for your feedback @lucacome - I do agree with you that it should take the ignore-unfixed flag into consideration (and potentially others as well). It would require some additional logic to handle the existing options.
@rahul2393 would you be able to take a look at this?

@lucacome - I've just merged the PR that should address this, thanks @rahul2393. Could you try to pin with a version of: 2a2157e to use the feature to try it out? If all looks good, we'll cut a release soon! thank you.

Seems to be working fine @simar7 🎉


rec_unlimited.py but at different files per minute

Hello!
I have a big doubt, after trying several of my own codes and the examples in the repository, I can't adapt the code from the rec_unlimited.py file. My idea is to execute this file but every X minute to create a new audio file without stopping the stream process so as not to lose information. For example, every minute a new file is created.
I don't know how to approach this because in the rec_unlimited.py example a tempor file is defined before opening the stream and sf.SoundFile, so if I need to create another file I don't know how to redefine the name and have the stream process not cut, any suggestions?
Thanks in advance

in the rec_unlimited.py example a tempor file is defined before opening the stream and sf.SoundFile

You will have to swap the sound file and the stream: open the stream first, and then, within a loop, open a sound file (each time with a new name).
Then, read audio data from the queue and write it to the current file. Once you have written the desired amount of data, finish writing to the file and then continue with the next loop iteration.
The important thing to get no gaps is that the audio callback always keeps writing to the queue without interruption.

I'm curious if @ghost ever got it to work. I want to do a very similar thing but also don't want any gaps between what each file has recorded. I'm hoping that I can switch files before the input queue overflows. Any advice on the best way to ensure no gaps would be great. I plan to know in advance how many files I will need, so could in theory open them all in advance, then close and move on to the next one as the previous one fills up, but I don't like that idea.

@ghost is a dummy user name, so you won't get an answer from there.

Any advice on the best way to ensure no gaps would be great.

You'll never get a guarantee (on a non-realtime operating system), because there will always be things that might take longer than expected.
My advice would be to use conservative settings, test it thoroughly in worst-case conditions, and hope for the best!


Support T5 in our pre-trained modules #266

Adding a raw pre-trained T5 model which takes in input_ids and gives out T5 network outputs.

resolve #266


Added Filter Command

This PR/issue should be against a repo in the org of your module e.g.,  nus-cs2103-AY1819S2 or nusCS2113-AY1819S2, not against the repo in se-edu org :-)
Closing...


NF-Core Based Refactoring of Modules (Issue #35)

Description
Please Describe the Bug(s) Fixed and/or the Feature(s) Added:
(1) Changed name of nf_modules to modules and nf_subworkflows to subworkflows
(2) Separated processes within utility_mods and main_mods into separate folders, each with corresponding main.nf file
(3) Subworkflows and main.nf calling these processes have been adapted to import from new locations
(4) Added dynamic error strategy where after each retry (n) you wait 2^n*200ms to retry the process with a max of 5 retries (to mitigate for potential deamon issues with Docker or traffic with too many container pulls from DockerHub)
(5) Simple reformatting/additions in main.nf script (exaggerated spacing in include statements, linking codebase within main.nf, etc.)
Checklist
Go Through Checklist Below and Place A :heavy_check_mark: (X Inside the Box) if Completed
General Checks

[X] Have you run appropriate tests (unit/integration/end-to-end) to check logic across run environments (Conda/Docker/Singularity on Scicomp/AWS/NF Tower/Local)?
For each relevant configuration:

Can the program run completely through without erroring out?
Does it produce the expected outputs, given the inputs provided?

[X] Have you conducted proper linting procedures?

Numpy formatted docstrings for functions
Comments explaining lines of code
Consistent and intuitive naming conventions for variables, functions, classes, methods, attributes, and scripts
Single empty line between class functions, two lines between non-class functions, and two lines between imports and code body
Camel case formatting for class names

[X] Have you updated existing documentation (README.md, etc.) or created new ones within docs?

CDC Checks

[X] Did you check for sensitive data, and remove any?
[X] If you added or modified HTML, did you check that it was 508 compliant?

Are additional approvals needed for this change? If so, please mention them below:
N/A
Are there potential vulnerabilities or licensing issues with any new dependencies introduced? If so, please mention them below:
N/A

Latest Comments:
(1) Rename nf_params to params
(2) Move test data and reference files to assets/ and change those paths in the config
(3) Move the workflows to a workflows/ dir and call them from main.nf (nf-core style)


delete/copy behavior

After deleting (or moving) a message, next call to himalaya list still shows the message... but Thunderbird won't. Using Thunderbird Compact action update the mailboxes.
I'm not fluent with IMAP protocol but I assume it's the way himalaya and other client use flags. An entry in the doc could be helpful, seems confusing for new users !

It's not the behaviour I'm expecting when copying or moving a mail. It's definitely a bug. Thanks for the feedback!

In fact I needed to trigger an expunge after those commands, so the IMAP server deletes mails with the \Deleted flag. It's fixed on master, it will be fixed in the next release!

Fixed in v0.2.5 :tada:


[FLINK-7289][state-backend] Integrate RocksDB memory use with managed memory

What is the purpose of the change
This PR sums up several PRs into a whole that allows users to either let RocksDB use Flink's managed memory budget, or to set a fix budget per slot which is shared between all tasks/operators.
(The two are similar, in the first case the fix budget comes from the memory manager).
Change log
This PR is based on:

#10447 which adds shared resource tracking to the memory manager
#10416 which adds the use of a shared Cache and WriteBufferManager per slot
Some cleanups, simplifications, and integrations between the previous PRs.

Follow-up
This PR needs to be complemented with one further change: Releasing the handle to the shared resources when RocksDB is disposed. We plan to add this once #10300 is merged.
Verifying this change
This PR adds some unit tests.
The PR can be manually verified by

setting Flink up with OFF_HEAP managed memory (it only works if all memory is OFF_HEAP, which is the only option once FLIP-49 is concluded)
Configuring RocksDB as the state backend
Setting in code (or in config) the use of managed memory (state.backend.rocksdb.memory.managed: true)
Enjoying a smooth running streaming program
Look for log lines like "Getting managed memory shared cache for RocksDB." and "Obtained shared RocksDB cache of size {} bytes"

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): no
The serializers: no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (yes / no / don't know)
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? yes
If yes, how is the feature documented? config options

I addressed the comments and are waiting for another CI run on my personal account, will then push the PR...

Probably the ConfigOptionsDocsCompletenessITCase will fail without fix like this.


Update INSTALLATION.MD

thanks for the PR 🚀

@all-contributors please add @HarrisonMayotte  for infrastructure and review


Haneefa: First week Checkin

GitHub:

[x] #54
[x] 🥚 Searching Issues: You can find issues in a repository by label, author, and milestone.
[x] 🥚 Project Boards: You can use issues on a GitHub project board to track your class assignments and help your classmates when they need it.

HYF Workflows:

[x] 🥚 Asking for Help: You can use the question and help-wanted discussion templates in your class repository to ask for help, and to help your classmates when they are blocked.
[x] 🥚 Check-Ins: You can use the check-in template to track your module learning objectives, and your weekly progress, and to post a retrospective at the end of the module.
[x] 🥚 Deliverables: You can create an issue for this module's deliverable and track your progress on the class project board.

Your Computer:

[x] 🥚 File System Management: You can create and organize a new folder in your personal computer for the materials you will study at HYF.

Visual Studio Code:

[x] 🥚 Install and manage extensions
[x] 🥚 Open a folder for editing
[x] 🥚 Create new files/folders inside of the folder
[x] 🥚 Edit files and save changes

I Need Help with:
some of the installation parts
What went well?:
I was able to create issues, I was able to install extensions.
I am totally able to do check-ins and deliverables. Meeting the coaches and Classmates.
What went less well?:
At first, I was a little bit slow in doing the work and now I am quite better and able to do good and fast
Lessons Learned:
Creating issues, installing, and completing my checklist. Personally, I learned how to engage in group discussions
Sunday Prep Work:
I started reading the material for next week's workflow.

Haneefa Shaik

What was not clear, where did you get stuck?
Still struggling to understand to post a retrospective at the end of the module.
What was clear, what did you master?
check-ins and deliverables are clear.
Where can you still use some help?
retrospective
Where can you help others moving forwards?
Any issue that I understood. i am ready to help

The Course

What can there be more of?
The material is quite good and enough in my point of view.
What can there be less of?
The material is quite good and enough in my point of view.
What material was most helpful (from HYF or elsewhere)?
All the repositories.
What materials were least helpful?
None
Any suggestions for future classes?
we can have 15 minutes session for doubts at the start of the class on Sundays, regarding the previous week's workflow.

I have created my own repository in my account to post my check-in and retro notes which are located in (https://github.com/Haneefa-Shaik/hack-my-future/tree/main/notes)

Still struggling to understand to post a retrospective at the end of the module.

@Haneefa-Shaik , the retros will make more sense in modules that are longer than 1 week.  In this module it is a little silly posting one check-in and one retro at the same time

Thank you @colevandersWands for making me understand.


Accept function for selection append and insert.

Like selection.select, selection.append and selection.insert can now accept a function which returns a node. This facilitates appending or inserting elements whose name is computed from data, or appending elements that were created previously (such as removed elements or elements from a pool).
There has been much discussion regarding whether the function should return the name of the element or the element itself. Returning a name is less work for the caller, but only supports creating new elements. Returning a name is more consistent with how D3 defines attribute values, but D3 does not allow attribute names to be specified as functions. So, it seemed better to opt for consistency with selection.select and selection.selectAll, which accept functions that return elements. Of course, you can still pass a function to selection.select, selection.selectAll or selection.each to accomplish the same thing, but using selection.append is more intuitive.
Related #4 #311 #724 #732 #734 #961 #1031 #1271.

Hello,
I found this thread while trying find a solution to avoid javascript garbage collection on a dynamic force directed graph. I have a graph where nodes "age out" and are removed from the graph, and new nodes are created dynamically from streaming data.
I think using a pool of DOM objects (i.e., pool of circles) that are reused on append and recycled on remove is the way to go.  To implement this, I think I'd need to use a function in the append and remove statements that pull elements from the pool on append and recycle to the pool on remove, right?
If anyone can point me to implementation examples, that would be great.
Thanks
p.s. Awesome library!

@tracycollins I think what you need here is the General Update Pattern, taking advantage of the key function to specify which DOM nodes should associate with which data elements.
If you have a constant number of nodes all the time, it should be possible to keep track of the key values of the graph nodes that get removed, then use those same values for the new graph nodes. This way, the DOM element for the aged out graph node will be immediately reused for the new graph node, and the DOM element will never get garbage collected.


update portal ds fields

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/incubator-trafficcontrol-PR/1602/
Test PASSed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/incubator-trafficcontrol-PR/1629/
Test PASSed.

you probably want to just open a new PR, right?

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/incubator-trafficcontrol-PR/1648/
Test PASSed.