Requests for keystroke capture

I just found this software and WOW, it's amazing! I was using OBS before but ended up looking for something that captured keystrokes. Tried Camtasia but it's pricey and has things left out, hence why I'm here...
The keystroke capture is good (not worried about the font too much for me right now) but I'd LOVE to see two things in it:

When you hold a key like spacebar, it doesn't total it up (mine will say something like spacebar x 16). Just keep it as a simple spacebar log as this is often used as a shortcut in software, so the totalling option isn't always needed. Just a switch to turn this totalling off?

I really would be able to use this all the time if it captured Shift, Ctrl, etc  keys when using a shortcut. Or am I missing something? If I press Shift + M, it just shows M.

Thank you! If you can add these two features I'd love to send you a donation for continued development and as a thanks. You will be blowing Camtasia and fellow screen capture software out of the water.
Adam

I think an option can be added to prevent showing multiple presses like x5.
Shift + Alphabet is interpreted as typing a capital letter (small letter if Caps Lock is On). Otherwise, all the shortcut keys should be working as expected, for cases like Shift + Esc or Ctrl + Shift + A.

That would be great if the multiple option could be added :)
I wonder if there is a way of toggling the shift + a key to be on or off, as it's a very useful keystroke to show. Either way, thank you again.

Give this build a try: https://ci.appveyor.com/api/buildjobs/k5uft2euuo2mkg42/artifacts/temp%2FCaptura-Portable.zip
I've added a checkbox to disable repeat counter on keystrokes settings page.
For the Shift + Alphabet case I found a workaround for you. Captura uses keymap files to determine how keys are displayed. These are present in keymaps directory. You can create a copy and remove the part that says that Shift + Alphabet must be interpreted as capital letter.
Well, I did it for you: custom.zip
Just extract the file inside it to keymaps directory and select English (Custom) from keymap dropdown.
Let me know how these work for you.

Thank you for this! It's really improved functionality and clarity, and I
appreciate you making it easy for me to apply too :)
I just have a couple of small questions:

Which mapping preset do I need to change to make 'Alt Gr' key read as
Ctrl + Alt? I tried changing a few in the text file but couldn't get it to
read. It works great for when I press Ctrl + Return, but it displays Ctrl
and Alt on separate lines when this key is pressed. It could also work for
when the actual keys Ctrl and Alt are press and held together, for more
complex shortcuts.

Is it possible to make the keyboard shortcuts appear from the bottom up?
When aligning them, it's tricky to work out where to position the preview.
As a really special request, I'd LOVE to see the keystrokes fade slightly,
so you know which one was most recent. Only for the first 3, so maybe 100%,
80%, 60%, but just so it's clear. But this is a wish list one!

I saw that long recordings might get interrupted on the main page...how
long is this being affected from? I'm looking to record up to 20 minutes,
but I don't want to get into the depths of recording if the file will
corrupt!

Thank you for your help with this. Going to make a donation to your
development fund now and will donate again on future updates. Appreciate
your work on it!
Adam
On Thu, 2 Apr 2020 at 07:17, Mathew Sachin<EMAIL_ADDRESS>wrote:

Give this build a try:
https://ci.appveyor.com/api/buildjobs/k5uft2euuo2mkg42/artifacts/temp%2FCaptura-Portable.zip
I've added a checkbox to disable repeat counter on keystrokes settings
page.
For the Shift + Alphabet case I found a workaround for you. Captura uses
keymap files to determine how keys are displayed. These are present in
keymaps directory. You can create a copy and remove the part that says
that Shift + Alphabet must be interpreted as capital letter.
Well, I did it for you: custom.zip
https://github.com/MathewSachin/Captura/files/4419153/custom.zip
Just extract the file inside it to keymaps directory and select English
(Custom) from keymap dropdown.
Let me know how these work for you.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/MathewSachin/Captura/issues/485#issuecomment-607643827,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOQUL7GHMEYC5KNYSJJX3PLRKQUV3ANCNFSM4KSWDDDQ
.

--
Adam Oliver
+44 (0)7837 087003
adamoliver.com

The way Captura handles keystrokes is such that the modifier keys (Ctrl, Alt, Shift) are only displayed when they are released. This was because when making things like tutorials, people wanted only the final shortcut combination to be displayed.
Like if I'm pressing Ctrl + Shift + Y, I don't want my viewer to see that I first pressed Ctrl, then Ctrl + Shift when if press Shift too, and then finally Ctrl + Shift + Y.
Well, it'll be pretty daunting to change this behaviour now and ensure everything works right as the code is really complex for this.
Also, regarding AltGr, Windows sends it as Ctrl + Alt to apps, so there isn't a way to distinguish if the user pressed AltGr or Ctrl + Shift. It currently displays things like AltGr + K as Ctrl + Alt + K which is expected behaviour but can't handle if AltGr alone was pressed.

Are you asking about:

Set it to Bottom if not already, then it will be relative to the bottom.
If you go to the webcam settings page, you can see that sliders are used to set the position of the webcam overlay, I'm planning to eventually do the same for other overlays.
There are a lot of options for customizing hotkeys, and I'll admit that the overlay settings page is cluttered. I'm thinking of making it simpler too.
The fading is actually happening even right now, but it is very mild, so not very noticeable.
I'll try increasing the fading and decide if it looks good.

The build I provided you should be fine. I've done a fix regarding that error. It's not guaranteed but at least my multiple 2hr+ long recordings have been successful.

Oh, and thank you for your support.

Thanks for your reply. I understand that some of the keystroke options
might not be possible, so that's fine. You did say that 'at the moment when
you press Ctrl + Alt' or Alt Gr it'll print to screen as Ctrl + Alt, but
mine is just showing Ctrl then on a new line, Alt. This is when I use your
custom shortcut keyboard mapping. Sorry if this wasn't clear.
And as for the bottom alignment, I meant so it feeds up rather than down,
so the newest shortcut appears above and not below. Then when you align it
to the lower part of the screen, it doesn't disappear out of view. Maybe
something for the future though.
Good news on the video length! I'll give it a thorough testing this month.
All the best and keep up the great work.
Adam
On Thu, 2 Apr 2020 at 14:30, Mathew Sachin<EMAIL_ADDRESS>wrote:

The way Captura handles keystrokes is such that the modifier keys
(Ctrl, Alt, Shift) are only displayed when they are released. This was
because when making things like tutorials, people wanted only the final
shortcut combination to be displayed.
Like if I'm pressing Ctrl + Shift + Y, I don't want my viewer to see
that I first pressed Ctrl, then Ctrl + Shift when if press Shift too,
and then finally Ctrl + Shift + Y.
Well, it'll be pretty daunting to change this behaviour now and ensure
everything works right as the code is really complex for this.
Also, regarding AltGr, Windows sends it as Ctrl + Alt to apps, so
there isn't a way to distinguish if the user pressed AltGr or Ctrl +
Shift. It currently displays things like AltGr + K as Ctrl + Alt + K
which is expected behaviour but can't handle if AltGr alone was
pressed.
2.
Are you asking about:
[image: 06-32-22]
https://user-images.githubusercontent.com/10654537/78252458-80db3e80-7510-11ea-8be8-c930633a4ee7.png
Set it to Bottom if not already, then it will be relative to the
bottom.
If you go to the webcam settings page, you can see that sliders are
used to set the position of the webcam overlay, I'm planning to eventually
do the same for other overlays.
There are a lot of options for customizing hotkeys, and I'll admit
that the overlay settings page is cluttered. I'm thinking of making it
simpler too.
The fading is actually happening even right now, but it is very mild,
so not very noticeable.
I'll try increasing the fading and decide if it looks good.
3.
The build I provided you should be fine. I've done a fix regarding
that error. It's not guaranteed but at least my multiple 2hr+ long
recordings have been successful.
Oh, and thank you for your support.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/MathewSachin/Captura/issues/485#issuecomment-607848215,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOQUL7HR3UK2NEIHO2SJ7R3RKSHQDANCNFSM4KSWDDDQ
.

--
Adam Oliver
+44 (0)7837 087003
adamoliver.com

I'm sorry, I misunderstood many things here.
Yeah, if you press only AltGr it will show Ctrl and Alt as separate presses. Only if you use like AltGr + K then it will show Ctrl + Alt + K.
Ok, now I understood what you mean, the latest keystroke should appear up.
I should be able to add an option for this pretty easily.
I'll let you know when done.


bootstrap does not work with -i flag

I followed the steps located here http://sparethought.wordpress.com/2011/06/16/first-git-tfs-usage-problems/ to create a bare repository, with the only exception being that I passed "-i Target" parameter on the git tfs clone command
So in the bare repository, my .git/config contains this entry:
[tfs-remote "Target"]
url = http://tfs2010:8080/tfs2010
repository = $/CCS/Root-Releases/Target/Source
fetch = refs/remotes/Target/master
ignore-paths = .*[Mm]anifest.xml|AssemblyInfo.cs|dotNetNeeded.exe
Here's what I did to clone from the bare repository
$ git clone bareRepo myNewRepo
$ cd myNewRepo
$ git tfs bootstrap -i Target
commit 89fb50ccff7f26fa3e8abf8c54a304df30695569
Author: Me<EMAIL_ADDRESS>Date:   Tue Aug 9 00:22:21 2011 +0000
Fixed NRE

git-tfs-id: [http://tfs2010:8080/tfs2010]$/CCS/Root-Releases/Target/Source;C997452

-> existing remote default
This is what is in my local clone's .git/config
[tfs-remote "default"]
url = http://tfs2010:8080/tfs2010
repository = $/CCS/Root-Releases/Target/Source
fetch = refs/remotes/default/master
$ git tfs pull -i Target -d
git command: Starting process: git config -l
git command time: [00:00:00.0340034] config -l
Sep.Git.Tfs.Core.GitTfsException: Unable to locate git-tfs remote with id = Target ---> Sep.Git.Tfs.Core.GitTfsException: Unable to locate git-tfs rem
ote with id = Target
at Sep.Git.Tfs.Core.GitRepository.ReadTfsRemote(String remoteId) in d:\dev\github\git-tfs\GitTfs\Core\GitRepository.cs:line 57
at Sep.Git.Tfs.Commands.Fetch.b__1(String arg) in d:\dev\github\git-tfs\GitTfs\Commands\Fetch.cs:line 75
at System.Linq.Enumerable.WhereSelectArrayIterator2.MoveNext()    at Sep.Git.Tfs.Commands.Fetch.Run(String[] args) in d:\dev\github\git-tfs\GitTfs\Commands\Fetch.cs:line 54    at Sep.Git.Tfs.Commands.Fetch.Run() in d:\dev\github\git-tfs\GitTfs\Commands\Fetch.cs:line 49    at Sep.Git.Tfs.Commands.Pull.Run(IList1 args) in d:\dev\github\git-tfs\GitTfs\Commands\Pull.cs:line 31
--- End of inner exception stack trace ---
at Sep.Git.Tfs.Util.GitTfsCommandRunner.Run(GitTfsCommand command, IList1 args) in d:\dev\github\git-tfs\GitTfs\Util\GitTfsCommandRunner.cs:line 3 5    at Sep.Git.Tfs.GitTfs.Main(GitTfsCommand command, IList1 unparsedArgs) in d:\dev\github\git-tfs\GitTfs\GitTfs.cs:line 56
at Sep.Git.Tfs.GitTfs.Run(IList`1 args) in d:\dev\github\git-tfs\GitTfs\GitTfs.cs:line 39
at Sep.Git.Tfs.Program.Main(String[] args) in d:\dev\github\git-tfs\GitTfs\Program.cs:line 23
Unable to locate git-tfs remote with id = Target
You may be able to resolve this problem.

Try using git tfs bootstrap to auto-init TFS remotes.

When I originally ran git tfs pull, it tried to grab the entire source tree from TFS as "default" (which takes several days to complete), so I was only hoping to have to do that once :)

Too old issue...


Enable AI Based Heuristics for Immediate Mode Fallback

Had to create a new PR due to some weird rebasing that occurred when I resolved some merge conflicts in Github's UI.
Link to old PR: https://github.com/ROCmSoftwarePlatform/MIOpen/pull/1826/

@Dmantri98  Please update the PR description as to what feature the PR introduces. for instance "this PR introduces a machine learning based heuristic fall back for find db lookup" would be a good starting point.
@atamazov and @averinevg  Please guide and help @Dmantri98  out, this is his first major PR to MIOpen.

@Dmantri98 Why do you need libeigen? Is it dependency of frugally-deep?

@Dmantri98

Had to create a new PR due to some weird rebasing that occurred when I resolved some merge conflicts in Github's UI. Link to old PR: #1826

Please do not hesitate to ask for assistance in case of similar troubles in the future. Hint: Do not use rebase. We always squash on merge to develop, so rebasing always runs into merge conflicts.

@Dmantri98 Why do you need libeigen? Is it dependency of frugally-deep?

Yes.

@Dmantri98  Please look into the CI failures

@Dmantri98 Instructions for performance testing

Please use MI100 node
cd to the build directory (that will contain ./bin/MIOpenDriver after the build)

Please make sure that there is ~10GB of free space. It is necessary to hold cached reference data that accelerate testing ~4-5 times.

checkout 6a8df3884 (baseline of your branch from develop)
rm -rf * in the build dir
Unzip these scripts (smoke-fpXX-93XX-imm.zip) right there and chmod 777 them if necessary
Run cmake: CXX=/opt/rocm/llvm/bin/clang++ cmake -DBUILD_DEV=On -DCMAKE_BUILD_TYPE=release ... (we need Release DEV build)
make MIOpenDriver -j `nproc`
Remove src/kernels/gfx*ufdb*
Run this:

./smoke-fp16-93-imm.sh   0 ;\
./smoke-fp16-93ff-imm.sh 0 ;\
./smoke-fp32-93-imm.sh   0 ;\
./smoke-fp32-93ff-imm.sh 0

Remove src/kernels/gfx*ufdb* again
checkout 05b06929c (tip of your development branch)
make MIOpenDriver -j `nproc`
Run this:

./smoke-fp16-93-imm.sh   1 ;\
./smoke-fp16-93ff-imm.sh 1 ;\
./smoke-fp32-93-imm.sh   1 ;\
./smoke-fp32-93ff-imm.sh 1

Now you can remove cached reference data (filename format: "conv_(fwd_out|bwd_dat|bwd_wei)_.*")

Then please zip the resulting *.log, *.csv, *.txt files and send to me for analysis. Thanks!

@Dmantri98 Any updates wrt testing? https://github.com/ROCmSoftwarePlatform/MIOpen/pull/1837#issuecomment-1312245164

@Dmantri98  Lets close this PR until we return to this.

@JehandadKhan Maybe it is better to keep this as draft? If we close the PR, then it will be easy to accidentally delete that branch during a routine cleanup of the repo.

@atamazov I've worked out the bugs in the code and have run the tests. Here is the zip fil you asked for
https://confluence.amd.com/display/MLSE/MIOpen+Heuristics?preview=/739552727/739552797/artem-tests.zip

Discontinuing because of too many merge conflicts with develop. Continuing the work in #2055

@atamazov I've worked out the bugs in the code and have run the tests. Here is the zip fil you asked for https://confluence.amd.com/display/MLSE/MIOpen+Heuristics?preview=/739552727/739552797/artem-tests.zip

Not accessible for open-source developers.


Update: Deleted kit.js and kitpurchase.js.

Please check if the PR fulfills these requirements

[x] The commit message follows our guidelines
[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
There are not much changes. It only fixes the cases.js command API

What is the current behavior? (You can also link to an open issue here)
https://github.com/ASEAN-Build-The-Earth/Merlion/discussions/50#discussioncomment-1483625

What is the new behavior (if this is a feature change)?
None

Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)
None

Other information:
None

I have deleted the kit data and everything else related to it


[Synapse Control Plane]ON BOARD: add management sdk for new service Synapse

Synapse is a new on board service.
The swagger spec is:synapse control plane swagger
Synapse management supports:

CRUD of Workspace
CRUD of Big Data Pool
CRUD of Sql Pool
Monitoring

Hi @aim-for-better please follow our guideline to add scenario tests. Thanks

Hi @isra-fel , this is a preview version. I updated the version number from 0.1.0 to 0.1.0-preview. We would prefer to adding scenario tests in another PR before GA. Does it sound good?

That's OK. I'll merge the PR. Thanks


keybindings using [ContextMenu] key sometimes ALSO trigger UI context menu

VSCode Version: 1.22.1
OS Version: Windows 10 Pro 1803 (build: 17133.1)
Does this issue occur when all extensions are disabled?: Yes

Steps to Reproduce:

Open keybindings and create a new one (let's call its action action). Do not use a "when" clause. Examples:

plain: "key" : "contextmenu"
modifier: "key" : "alt+contextmenu"
chord + plain: "key" : "ctrl+shift+alt+space contextmenu"
chord + modifier: "key" : "ctrl+shift+alt+space alt+contextmenu"

Test the keybinding with various selections and non-selections

Notice that if you use the UI to assign the keybinding, then the "plain" and "chord + plain" examples will trigger the UI context menu (so you will need to press [Esc] and [Enter] to confirm the keybinding) but the "modifier" and "chord + modifier" examples will not.
When the [ContextMenu] key is used unmodified (as in the "plain" and "chord + plain" examples above), then:

when editor text has focus: does not trigger action + triggers UI context menu
outside editor: triggers action + triggers UI context menu

When the [ContextMenu] key is used modified (as in the "modifier" and "chord + modifier" examples above), then:

when editor text has focus: does not trigger action + triggers UI context menu
outside editor, with selection: triggers action + triggers UI context menu
outside editor, without selection: triggers action + does not trigger UI context menu

The contextmenu key is a bit special, as it leads to the browser emitting a contextmenu event. We have various places (widgets) where we listen directly for the contextmenu event. All those places would need to somehow check with the keybinding service if the contextmenu key was used for keybindings purposes and then ignore the contextmenu event...


updates to wara_collector for AGC environments

Added support for Air-Gap Cloud environments.  Added USSEC and USNAT to validateset for AzureEnvironment parameter.  Added
Changed management URL from hardcoded to retrieved by Get-AzEnvironment
Added check for USSEC and USNAT to skip the git clone in AGC environments.

[## Related Issues/Work Items]
https://github.com/Azure/Azure-Proactive-Resiliency-Library-v2/issues/348

Breaking Changes
N/A
As part of this pull request I have

[x] Read the Contribution Guide and ensured this PR is compliant with the guide
[x] Checked for duplicate Pull Requests
[x] Associated it with relevant GitHub Issues or ADO Work Items (Internal Only)
[x] Ensured my code/branch is up-to-date with the latest changes in the main branch
[x] Ensured PR tests are passing
[x] Performed testing and provided evidence (e.g. screenshot of output) for any changes associated to ARG queries
[x] Updated relevant and associated documentation (e.g. Contribution Guide, Docs etc.)

@kpoineal @Claudio-Merola please review

@Monte-Hazboun I'll reach out to you tomorrow and discuss. Sorry for the delay.

Spoke to Kyle and will be abandoning this PR in favor of the upcoming refactor.  Kyle is aware of the changes and will incorporate them into the new code.


Nonexistent voucher code form crashes when invalid

When voucher code for nonexistent voucher is entered on checkout, checkout form crashes, not displaying at all. Here's how it looks like at Saleor's demo:

When running Saleor with DEBUG = True, Error 500 is produced instead:

Investigating this, I've found that this is caused by the erroneous default_error_messages where pgettext_lazy is wrapping other pgettext_lazy:
class VoucherField(forms.ModelChoiceField):

    default_error_messages = {
        'invalid_choice': pgettext_lazy(
            'voucher', pgettext_lazy(
                'Voucher form error', 'Discount code incorrect or expired')),
    }

This feels simple fix enough, but the scenario feels important enough for new tests to be added to our tests suite.

Oh that's quite interesting. I tried to reproduce it on January release but it doesn't have the issue.
Is there a missing test for this feature? I'm pretty surprised the unit tests didn't catch this bug.


feat: distinguish * and ** in globs

Summary
Set literal_separator to true for globs.
Motivation
By default, the globset crate matches files as per the .gitignore specifications which results in foo/*.py matching foo/hello.py as well as foo/bar/hello.py.
This commit changes this by setting the literal_separator option to true, which ensures that * and ? never match a path separator.

Resolves: #6262

Test Plan
So far, cargo test work, but please advise if you would like me to add new tests specifically for this change (and please point me in the right direction).

I think I'm cool with changing this but it should probably be considered a breaking change (since files that were ignored will now be unignored).

It looks like this is going to cause churn for a lot of projects (based on the ecosystem checks) so we should double-confirm that we want this behavior.

While I am open for suggestions to this PR, I do think that it would be good to follow a widely accepted convention such as the gitignore specification. Specifically the following from the specification:

An asterisk * matches anything except a slash. The character ? matches any one character except /. The range notation, e.g. [a-zA-Z], can be used to match one of the characters in a range. See fnmatch(3) and the FNM_PATHNAME flag for a more detailed description.

Two consecutive asterisks (**) in patterns matched against full pathname may have special meaning:

A leading ** followed by a slash means match in all directories. For example, **/foo matches file or directory foo anywhere, the same as pattern foo. **/foo/bar matches file or directory bar anywhere that is directly under directory foo.
A trailing /** matches everything inside. For example, abc/** matches all files inside directory abc, relative to the location of the .gitignore file, with infinite depth.
A slash followed by two consecutive asterisks then a slash matches zero or more directories. For example, a/**/b matches a/b, a/x/b, a/x/y/b and so on.
Other consecutive asterisks are considered regular asterisks and will match according to the previous rules.

To help with the transition, I might suggest two options:

An option to migrate configurations from 0.4 to 0.5. In most cases, it would suffice to replace all * to ** (though I suspect there will be edge cases).
Add a flag to opt in/out of the new way, allowing both behaviours temporarily.

Having said that, this would make the PR significantly more difficult for something which I suspect most developers will straightforwardly understand and adapt.

I'm generally in favor of changing our semantics to match gitignore because it is a well-understood pattern and also makes copying patterns from gitignore to the ruff settings easier. It should also fix https://github.com/astral-sh/ruff/issues/8267
My main concern is that Ruff isn't fully compliant to gitignore even after this change. It still has the following inherited flake8/black behavior:

We have kind of a weird thing going on, which I think I followed from Flake8 or Black. When given a pattern like foo*.py, we match against both the basename and the absolute path (when testing to exclude a given file or directory). source

I think we should remove that behavior as well.
Having said that, I don't think it's feasible for us to ship this at the moment considering the amount of churn it creates. I think we need a way to ease migration for users by using a cargo like editions concept or provididing a migration tool automatically rewrites/upgrades the configuration

I'll close this PR because there's no clear path of what needs to be done to merge it.


Add reminder feature

A reminder feature has to be added. The user will be notified a day before and on the due date on opening the terminal.

I'm thinking I can work on this. Can I look into this?

Sure :+1:

@thescriptninja ,
I think rather fiddling with the script.py. I think a better option would be to implement a shell function which can be placed in the users [shell'src] which would display the required feature output.
Advantages

User has the freedom to use this feature or not upon his/her will.
We can then place this function in the pip package which would automatically be placed in the users [shell'src].

Cool. I'll assign this to you.

Hi @thescriptninja. Sorry for the late update.
I am fairly near to the completion of this feature. I have come across some setbacks.
pymongo, which we use has certain limitations:

[1] it cannot compare  datetime.datetime.today() with the ISODates fomats which we use in our databases since
db.collection.find("due" : {"$lt":  datetime.datetime.today()})
is not possible as it only takes an int as an argument. This very step is required because we wanna display the reminders just the day before the due dates and on them.
Eg: if a task in mongodb has a due date on 20th Dec it must display it on 19th and 20th Dec on the terminal. Extraction of due date is possible but conversion for comparison is not.

I switched to shell but mongodb does not support shell, bash shell language. Scripting in it is near to impossible for mongodb.

The only way out seems to switch to Javascript. Read more about it https://docs.mongodb.com/manual/tutorial/write-scripts-for-the-mongo-shell/

Would it be okay if I take some days to complete this thing.
PS,
If you come about a solution or alternative regarding [1]  please let me know

Hi @thisisshub . Have you tried using datetime.timedelta? We can set a timedelta of 1 day and then compare the difference between datetime.datetime.today() and todo['due'] with it. If we have to shift to a different scripting language, I don't think it is worth it.

Hey @thescriptninja  I gave it a go as you suggested but it's not possible for pymongo yet to satisfy the project needs. According to my knowledge and research around the net I found we could only use Javascript if we want to enable this feature since we are on mongodb. I suggest we close this issue till something else comes up.


Update docs to point to testnet4

Helps to align with the docs on our website: https://docs.spacesprotocol.org/getting-started/installation#configure-and-sync-bitcoin-core

Replaced by #24


Add to layer extent from add layer modal

Coverage decreased (-0.1%) to 70.47% when pulling b2990d4162e72b626ac952cb4d6c63d4ccc64dc1 on add-layer-zoom into 3bc11fd5b4136229eaf48f754d886332be7c253a on master.


Does not serialize correctly when the form field is a jQuery.Chosen multi select field

I am using jquery.chosen() with multiple turned on. With this option, I can choose more than one choices in the field. When I select more than one option, the serializeObject picks up only the last option of the chosen options.
https://harvesthq.github.io/chosen/options.html

This is not an issue I'm willing to support. I have no idea what the jQuery Chosen plugin does to manipulate the behavior of inputs.
As it stands right now, jQuery serializeObject depends on jQuery's native serializeArray function. If your form doesn't serialize properly into an array, it will also not work with this plugin.
You can stay tuned for a the 3.x version which is removing the serializeArray dependency as it's been a source of a plethora of other problems and a barricade for countless would-be-nice features.

Thanks for your quick response. I figured out why it was not working.
I needed to use [] at the end of the name when it is a multi-select.
for example
name="users[]"

Thanks for your quick response. I figured out why it was not working.
I needed to use [] at the end of the name when it is a multi-select.
for example
name="users[]"
I am unable to comment further
On Sun, Jul 19, 2015 at 12:34 AM, Paul Maček<EMAIL_ADDRESS>wrote:

This is not an issue I'm willing to support. I have no idea what the
jQuery Chosen plugin does to manipulate the behavior of inputs.
As it stands right now, jQuery serializeObject depends on jQuery's native
serializeArray function. If your form doesn't serialize properly into an
array, it will also not work with this plugin.
You can stay tuned for a the 3.x version which is removing the
serializeArray dependency as it's been a source of a plethora of other
problems and a barricade for countless would-be-nice features.
—
Reply to this email directly or view it on GitHub
https://github.com/macek/jquery-serialize-object/issues/70#issuecomment-122631997
.


BytesIO is not evaluated as typing.IO by pydantic

Initial Checks

[X] I have searched GitHub for a duplicate issue and I'm sure this is something new
[X] I have searched Google & StackOverflow for a solution and couldn't find anything
[X] I have read and followed the docs and still think this is a bug
[X] I am confident that the issue is with pydantic (not my code, or another library in the ecosystem like FastAPI or mypy)

Description
According to the typing documentation  the type typing.IO or typing.BinaryIO should be used as type hint for file-like objects, which have been opened in binary mode.
However, a pydantic base model, is not accepting an io.BinaryIO(...) object as instance for a type defined with that.
Instead the following error is raised:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "pydantic\main.py", line 406, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 1 validation error for TestDTO
file
  instance of IO expected (type=type_error.arbitrary_type; expected_arbitrary_type=IO)

How can I define a file-like object as type of a pydantic base model?
Example Code
import typing
import pydantic
import io

class TestDTO(pydantic.BaseModel):
    file: typing.IO
    class Config:
        arbitrary_types_allowed = True

TestDTO(file=io.BytesIO(b"42"))

Python, Pydantic & OS Version
pydantic version: 1.8.2
pydantic compiled: True
install path: ...
python version: 3.9.7 (default, Sep 16 2021, 16:59:28) [MSC v.1916 64 bit (AMD64)]
platform: Windows-10-10.0.19042-SP0
optional deps. installed: ['typing-extensions']

Affected Components

[ ] Compatibility between releases
[X] Data validation/parsing
[ ] Data serialization - .dict() and .json()
[ ] JSON Schema
[ ] Dataclasses
[ ] Model Config
[ ] Field Types - adding or changing a particular data type
[ ] Function validation decorator
[ ] Generic Models
[ ] Other Model behaviour - construct(), pickling, private attributes, ORM mode
[ ] Plugins and integration with other tools - mypy, FastAPI, python-devtools, Hypothesis, VS Code, PyCharm, etc.

The typing.IO annotation is not currently supported in pydantic. This is sort of hinted at by the fact that you need to use arbitrary_types_allowed = True, which makes it so that for unrecognized "arbitrary" types, an object obj will pass validation for that type type_ if and only if isinstance(obj, type_). And isinstance(io.BytesIO(b"42"), typing.IO) is False.
Note: pydantic doesn't support every type in the standard library. In principle I don't think it should be hard to add support for this, PR possibly welcome, but I'll defer to @samuelcolvin about whether we should support this.

I can confirm the original behavior is the same in Pydantic v2.3.0.

It looks like Python itself has made a bit of a mess here for reasons I can't understand, and that seems reflected in https://github.com/python/cpython/issues?q=is%3Aissue+is%3Aopen+"typing.IO"

The docs (https://docs.python.org/3/library/typing.html#typing.IO) don't actually mention io.BytesIO or StringIO at all, although type checkers do accept them
isinstance(open(...), typing.IO) is also False, even though the docs refer to the return type of open().
It's not clear how you would check the type of a file object at runtime in a 'friendly' way.

How can I define a file-like object as type of a pydantic base model?

This works:
import io

import pydantic

with open(__file__, "rb") as f:
    BinaryFileType = type(f)

class TestDTO(pydantic.BaseModel):
    file: BinaryFileType | io.BytesIO

    class Config:
        arbitrary_types_allowed = True

TestDTO(file=open(__file__, "rb"))
TestDTO(file=io.BytesIO(b"hello"))
TestDTO(file=io.StringIO("hello"))  # error


Interger & Float error

That's the error message I am getting, immediately after installing the package. What could I be doing wrong?

Looks like you have configurated float value in froala config:
config('nova.froala-field.upload_max_filesize')

or in php config:
ini_get('upload_max_filesize')

It should be integer.

Feel free to reopen issue, if you will find bug in source code.


Use ST_AsMVT directly in DynamicTileDAO

Description
With #955 , MOVE's database will be upgraded to PostgreSQL 11.x, which includes support for libprotobuf.  This in turn enables use of the PostGIS function ST_AsMVT, which allows us to generate vector tiles directly in database.
This task refactors DynamicTileDAO to use ST_AsMVT.
Acceptance Criteria

[ ] replace current process (see Additional Notes) with ST_AsMVT;
[ ] ensure that tiles load successfully in frontend.

Additional Notes
Our current setup has three steps:

fetch features in tile coordinates using previous-generation PostGIS functions, in DynamicTileDAO;
in VectorTile, convert those features to a representation that can be used with vt-pbf;
in DynamicTileController, use vt-pbf to make the final conversion to .pbf vector tiles.

It's likely (though not certain) that switching to ST_AsMVT will also improve performance.

Adding @leonL - this is a good first issue that focuses on the backend / database parts of MOVE, specifically DynamicTileDAO.  In this task, you'll change the queries in that file to use ST_AsMVT, a function in newer versions of PostGIS that allows you to generate vector tiles directly within PostgreSQL.

Migrated to jira [MOVE-209]


M3-6065: API Tokens Refactors and Fixes

Description 📝

Refactors all of /profile/tokens to use functional React components and React Query
Uses Formik for token forms
These changes subsequently fix unexpected cache invalidation behavior when revoking API tokens

Todo ☑

[x] Fix broken tests
[x] Re-evaluate testing and add tests
[x] Consider adding relative expiry date

Preview 📷

How to test 🧪

Test all actions possible on the /profile/tokens page

Test Token Creation
Test Token Deletion
Test Token Editing
Test ordering
Test pagination

Looks good, Banks! A couple observations, not sure if any of these are major issues though:

Just noting the styling difference between this branch and prod where the PAT labels are bold in prod but not bold on your branch; I personally prefer it not to be bold since it seems more consistent with our other tables, but pointing it out just in case.
Usually on RQ-ified pages, there's a behavior where if you create a resource somewhere else (via the CLI, another browser tab, etc.) the page fetches the new data on some interval and automatically updates the page contents to reflect additions/changes to the data -- I'm not seeing that on this page. Not sure if it matters, but also wasn't sure if it was intended to behave that way or not.
If I create a personal access token, and then immediately create a new personal access token, the token creation form is pre-populated with the data from the previous token I generated (label, scopes, etc.). This doesn't appear to be the case in prod -- there, you're met with a clear form every time you create a PAT.
This isn't caused by your PR, but this is the first time I've seen the pagination on this page and I was a little thrown off -- because there's no spacing between the pagination controls and the list beneath it, it almost appears as though the pagination controls are for the Third Party Access Tokens list and not the Personal Access Tokens list:

@jdamore-linode Thank you for the great review.

I removed the bold intentionally :) I will make sure this is ok with UI//UX before merging
I updated the create drawer form to reset  on successful creation. Normally, we'd reset the drawer whenever it is closed. I kind of like this because if someone were to close the drawer on accident, they could re-open it and still have the same state. Does this make sense or should I just follow our normal pattern of just resetting state more often?
I added some RQ code to invalidate Personal Access Tokens if the API sends an Event. We don't get any events for Third Party Access Tokens so there is no action to take there.
Weird pagination spacing should be fixed.

@jdamore-linode Agreed. I'll make the behavior match other drawers! Thanks!


Create a Mac OS X continuous integration pipeline in Travis

Travis CI supports the build matrix for cross-platform builds.
We can add an additional pipeline to test if Kitura builds on Mac OS (XCode 7.3). I have figured out a way to easily use the Mac OS OS, pull down the 04-12-DEVELOPMENT snapshot and use it to swift build and swift test the current project.
https://github.com/IBM-Swift/HeliumLogger/issues/3

@rfdickerson I am not sure I understand what this issue is about, are you saying you want to do CI in OS X in differently? How does it give an advantage over our current pipeline?

Good question, and totally understand given that we do a build in Mac OS as well, but aren't we using our own slave for Mac OS builds not the Travis' XCode 7.3 environment? This also relates to #137 . I see the build process going:

Use the native Travis CI XCode 7.3 image
Install Mac OS 4-12 toolchain
Install Homebrew
Install Homebrew dependencies
Run 'swift build'
Run 'swift build -X' (to generate XCode Project)
Run 'xcodebuild -project XX -scheme XX -enableCodeCoverage YES clean build test
Submit results to codecov

We are currently using the native Travis CI image. Codecov is in our backlog and can be tracked in the issue mentioned.


Do not follow the nullptr.

@vekterli or @arnej27959 or @aressem PR
Of course the first core related to selection happened after @vekterli went OO.
I will just merge as it simple and the coredumps might be many.

👍


Update Add-SPOHubToHubAssociation.md

typo

Docs Build status updates of commit 5f6b1bb:
:clock10: Full build: the average full build time is 11 min(s) 51 sec(s), this is based on the last 1000 build(s) for this repository.

Docs Build status updates of commit 5f6b1bb:
:warning: Validation status: warnings

File
Status
Preview URL
Details

sharepoint/docs-conceptual/overview.md
:warning:Warning
View (sharepoint-ps)
Details

sharepoint/docs-conceptual/index.md
:warning:Warning
View (sharepoint-ps)
Details

sharepoint/sharepoint-ps/sharepoint-online/Add-SPOHubToHubAssociation.md
:white_check_mark:Succeeded
View (sharepoint-ps)

sharepoint/docs-conceptual/overview.md

Line 38: [Warning] Link 'https://docs.microsoft.com/en-us/powershell/scripting/powershell-scripting?view=powershell-5.1' contains locale code 'en-us'. For localizability, remove 'en-us' from links to most Microsoft sites.
Line 39: [Warning] Link 'https://technet.microsoft.com/en-us/scriptcenter/dd742419.aspx' contains locale code 'en-us'. For localizability, remove 'en-us' from links to most Microsoft sites.
Line 40: [Warning] Link 'https://technet.microsoft.com/en-us/library/ee221100.aspx' contains locale code 'en-us'. For localizability, remove 'en-us' from links to most Microsoft sites.
Line 49: [Warning] Link 'https://technet.microsoft.com/en-us/library/ee176927.aspx' contains locale code 'en-us'. For localizability, remove 'en-us' from links to most Microsoft sites.
Line 51: [Warning] Link 'https://technet.microsoft.com/en-us/library/ee176828.aspx' contains locale code 'en-us'. For localizability, remove 'en-us' from links to most Microsoft sites.
Line 52: [Warning] Link 'https://technet.microsoft.com/en-us/library/ee177028.aspx' contains locale code 'en-us'. For localizability, remove 'en-us' from links to most Microsoft sites.

sharepoint/docs-conceptual/index.md

Line 122: [Warning] Link 'https://technet.microsoft.com/en-us/library/fp161362' contains locale code 'en-us'. For localizability, remove 'en-us' from links to most Microsoft sites.

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.


Add support for JSX fragments

JSX fragments are a thing now - we should add support for this.
Note @JorgeBucaran: since you're planning to rewrite the diff algo, I'd suggest writing it with fragments in mind - that is, work from the assumption that everything is a set. It's generally simpler/easier to work from the assumption of zero-or-more sets of (V)Nodes than dealing conditionally with nulls. (I tried to work from that assumption in my own rewrite, where, internally, the patch operation works with sets, and the public patch-function starts by dealing with null by turning it into an empty set, so that the internal algo doesn't need to deal with nulls at all.)

@mindplay-dk Hmm, not really sure I'd want this at all.

It enables you to implement functional components that return a range of elements - in other words, you're not longer forced to start every component with a (sometimes dummy) wrapper element.
Anyways, it's what JSX is now - it's already supported both by Babel and Typescript.

It's definitely low on my wishlist though - the critical thing (IMO) is sorting out the life-cycle events. Once that's done, I can actually start building my app with this 😄

@mindplay-dk It enables you to implement functional components that return a range of elements - in other words, you're not longer forced to start every component with a (sometimes dummy) wrapper element.

We can create components that return a range of elements already!
const MyList = props => [
A
,
B
,
C
]

What we don't currently support is patching a root node that it itself is an array.

We can create components that return a range of elements already!

I know, but that's kind of ugly, and it's not how the JSX community wants to do it.

What we don't currently support is patching a root node that it itself is an array.

React also does not support that, as far as I know - the point of JSX fragments, if I understand correctly, is merely to be able to create a range of elements using XML-like JSX syntax, without having to wrap it in braces and brackets.
Anyhow, as said, this is definitely not a high priority for me, personally - but the community has decided they want this, and it's likely not much work to support it, especially if you factor your new implementation so it consistently operates on sets.
I'm much more interested in solving the ordering issues, for one :-)

You mean the community would prefer to rewrite my example as 😮
const MyList = props =>
  </>

A

B

C

  </>

?

@mindplay-dk Okay, let's keep this open and see what happens. :)

?

Apparently, yeah 😆

Apparently in order to support this you need to expose a function and set it to paramFrag
https://github.com/babel/babel/blob/master/packages/babel-plugin-transform-react-jsx/README.md

Yeah, but that's just one part. In order to support this createElement and patch must be modified also to process fragments. This functionality is coming to Hyperapp someday, after 2.0 and other priorities are sorted out, but not to Ultradom.


[FEATURE] Add getAll to devices

Hej!
I have seen that you already defined a getAll in the device, but you did not export it into the type.
For my application use I need this desperately, for now I copied the method and modified it a bit.
Thank you in advance =)
Greetings
https://github.com/balena-io/balena-sdk/blob/e62c741e63fec46bae5c428c8eb36085318dcda5/src/models/device.ts#L322

Hi @Chaosflo ,
The device.getAll() method was dropped intentionally in v17.0.0 since we found that many users where fetching all devices and then were filtering on client side, instead of adding a $filter in the optional parameters and letting our backend do the filtering, thus saving CPU & bandwidth on edge devices.
The suggested approach is to use device.getAllByApplication or device.getAllByOrganization, which on later observations we also found that it is more performant for big fleets (because of how permissions are applied on our backend).
Moreover this using those methods upfront makes automations be implemented in a more precise & scoped way (rather than globally), which prepares them for a future that they might have multiple orgs or fleets.
On top of that, it also avoid scripts accidentally affecting incorrect devices, for example affecting devices of other fleets because the user was just added as an Operator on it.
We would love to hear more on what your use case is, and help you use a method that exactly matches your use case.
What are the current methods limiting you to do, that if we added then you would be happy using them?
For example, would supporting providing multiple organizations or applications in device.getAllByApplication / device.getAllByOrganization allow you to use those?

Hej @thgreasi !
Okay that's a valid reason =?
So our use case is to show all devices from all fleets and applications, so we need all applications.
If I would filter by application or organization I would make more requests than just one.
I will explain a bit my use case so that you can make a picture in your head!
We want to show the user all devices in a table, show tags (which were applied to the devices) as columns to filter on.
For a device we then have a detail view which shows special fields which is interesting for us.
Pretty simple.
Yeah that should be it =)
I hope your understand that I cannot go further into detail because of company rules, u know  ^^

Let me give you a pine query that does exactly what you described which you can use right away (until we extend the device.getAllByOrganization to accept multiple organizations in its parameters):
await sdk.pine.get({
	resource: 'device',
	options: {
		$filter: {
			belongs_to__application: {
				$any: {
					$alias: 'bta',
					$expr: {
						bta: {
							organization: {
								$any: {
									$alias: 'o',
									$expr: {
										o: {
											handle: { $in: ['org1handle', 'org1handle']}
										},
									},
								},
							},
						},
					},
				},
			},
		},
	},
});

In my opinion, the org handles should be a parameter for your application, which scoped the results.
To be clear, this is not just for performance reasons, but it also avoid future surprises:

imagine if the user that your application is authenticated with, at some later point gets added to a test fleet with offline devices and those show up unintentionally on your application causing false alarms
or if at a later point we grant all users permissions to access some common test devices on the platform.

Something similar has happened in the past with users that were retrieving all release_tags without any filter, so when we re-modeled our OS releases as plain public releases ("dogfooding" our platform) and added tags to them, those users had update their applications and filter their queries more precisely.
As a result it is always suggested to avoid unfiltered queries, since what you currently have access to might change, and in most cases does not precisely match what you want to present.


Correctly report defaultExportsCannotMerge04

Description:
Adds TS2652
I have to admit my approach is kind of naive and only fixes the defaultExportsCannotMerge04 so it will need to be edited to satisfy other defaultExportsCannotMerge... cases (for example export default class)
I can work on the other ones too, but

I don't know how to enable them because running ./scripts/test.sh defaultExportsCannotMerge runs only defaultExportsCannotMerge04
I want to get some feedback as this is my first contribution in Rust

Should we make this one pretty and merge or should we tackle all defaultExportsCannotMerge... in one PR?
Closes: #591

It's the same for me when I run it.
I'll create a PR that includes an alternative.
PR is OK to be separated.

If @filename is included, we have confirmed that it will not be tested.

I think we can use another PR for further improvements this PR is good enough for merging.

I'm not sure why, but I can't enable auto-merge at the moment.


Adding example for Notification

Add sample to use Notification.
@MangelMaxime  can you take this please.

Yes I will handle it as the notification are not only wrappers.


Provide option to use synchronized version of jexl

It would be better if I can choose either async or sync evaluation of jexl by option/ config. For example, I want to evaluate a json object with special syntax "${...}", eg. ${"2016-4-15"|toDate} where toDate is custom transform I added to jexl. I would grab the context between ${ and } by regular expression. The final object derived would be a Date object.
I would like to do this on React Component where the above would be one of the props, as the React Component lifecycle function is not async, I would like to do it and convert the props to state and use the state for the first time rendering.
I think it is just example case, there are many cases we may want to use Sync instead of Async.
Maybe can follow fs, jexl.evalSync and jexl.eval?

Jexl is Promises-based internally as well as externally; I'm afraid that with that design, synchronous evaluations are currently impossible. I could see a potential solution (if Jexl's evaluator were completely rewritten) that would allow for Promises to be detected and throw an exception if one is encountered in a synchronous evaluation call, but the hackiness of such a thing makes me cringe a bit.
It's probably better to think of Jexl as any other asynchronous data source, like an http request, and have its result trigger an action that populates the React component. Due to the user (you) being in control of whether a Jexl expression requires external I/O, any content necessary on initial pageload can appear without perceptible delay.
If it must be synchronous, I'm afraid the better solution for now would be to turn to an evaluator that doesn't have support for async transforms -- many template languages function this way. I'll keep chewing on this problem, though, for a potential 2.0 release.

Revisiting this ticket almost a year later, I think there's no hope for a synchronous version. Doing so would require dropping support for Promises/asynchronous transforms and operators, and I think it's more of a problem to drop such a huge range of functionality from Jexl than it is to write code that expects an asynchronous response. Apologies if that's difficult for your use case.
Although if you're in Node, async/await is quite nice for Jexl!

It seems like now the evalSync function supports synchronous evaluation unless I'm missing something. (I'm new to jexl)

@michaelmior You're absolutely right -- this ticket closed two and a half years ago and I didn't think to update it once sync support was actually delivered. But for anyone finding this via google: Jexl now supports synchronous evaluation, as long as you don't add and call any asynchronous transforms or operators. See evalSync in the README for details!


Dist size is HUGE — 425kb

0.o   !?!

You can help by reducing it or providing some advice how to do that =)

webpack --json | webpack-bundle-size-analyzer

bluebird: 169.27 KB (35.0%)
lodash: 105.85 KB (21.9%)
mobx: 93.57 KB (19.3%)
inflection: 30.07 KB (6.22%)
superagent: 29.14 KB (6.02%)
qs: 14.32 KB (2.96%)
process: 5.17 KB (1.07%)
component-emitter: 3.11 KB (0.642%)
timers-browserify: 2.06 KB (0.425%)
webpack: 241 B (0.0487%)
: 30.92 KB (6.39%)


AggregateVote: num_aggregate_sig()

https://github.com/ethereum/beacon_chain/blob/8192419ce78e09755812264490e404c91808596b/beacon_chain/state/aggregate_vote.py#L23
Is this line sane? From what I can gather, aggregate_sig is going to be an array of length 2 because it's storing an x, y of a single BLS aggregate sig. Therefore num_aggregate_sig() will not reflect the number of individual signatures applied to the aggregate sig.
I understand this is WIP PoC -- I'm mainly asking to ensure my understanding is valid and I'm not missing something. I'm guessing someone just threw this in without really paying attention to it. I would just ignore it if it there wasn't also a test asserting the functionality is correct.
Thanks :relaxed:

Yup... A bunch of helper length methods were added at all once and this slipped in.
I think the intended implementation should be:
return bitfield.get_vote_count(self.notary_bitfield)

Oops... my bad. The definition of num_ properties is just len() function helper in #30. Most of the num_ ... _sig properties should be removed.


Update watchForNewFiles to allow reading already read files with a new timestamp

In TextIO and AvroIO, we have a configuration option called watchForNewFiles, and in FileIO.MatchConfiguration, we have an option called watchInterval. Right now, these match any files according to the filtering criteria, and then periodically check for new files. A file is determined to be new if it has a different filename than a file that has already been read.
We want to add an option to choose to consider a file new if it has a different timestamp from an existing file, even if the file itself has the same name.
See the following design doc for more detail:
https://docs.google.com/document/d/1xnacyLGNh6rbPGgTAh5D1gZVR8rHUBsMMRV3YkvlL08/edit?usp=sharing&resourcekey=0-be0uF-DdmwAz6Vg4Li9FNw

Imported from Jira BEAM-14267. Original Jira may contain additional context.
Reported by: yihu.

Unable to assign user @Abacn. If able, self-assign, otherwise tag @damccorm so that he can assign you. Because of GitHub's spam prevention system, your activity is required to enable assignment in this repo.

Addressed in #17305
.close-issue


Tokeninfo endpoint

Implement a tokeninfo endpoint, that can be queried to get information about an issued access_token.

Can you rebase, there are some conflicts due to the other pull requests.
Once this is merged ill release as a new version

Done... hope it works now.

Yup working


Charts with different set of values for each environment

We have multiple environments (DEV, PROD) where we run same set of containers with slightly different setting. I didn’t want to duplicate charts for each environment and for that reason I created parametrized charts using subcharts.  This is my directory structure:
storm - Chart.yaml
      - values.yaml
      - requirements.yaml
      - charts - storm-dev - Chart.yaml
                           - values.yaml
               - storm-prd - Chart.yaml
                           - values.yaml
      - templates - deployment.yaml
                  - _helpers.tpl
                  - job.yaml
                  - secret.yaml

The chart dependencies are defined as follows:
$ cat requirements.yaml
dependencies:
  - name: storm-dev
    repository: "file://charts/storm-dev"
    version: ">= 0.0.1"
    tags:
      - dev-values
    import-values:
      - data

  - name: storm-prd
    repository: "file://charts/storm-prd"
    version: ">= 0.0.1"
    tags:
      - prd-values
    import-values:
      - data

Parent chart's values.yaml file contains only following values:
$ cat values.yaml
# Default values
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

tags:
  dev-values: false
  prd-values: false

All the actual values for templates are coming from subchart values.yaml files. I control the subchart values assignment by defining either dev-values or prd-values tag as true on the command line as true
helm install -n v1 . --set tags.dev-values=true

This approach kind of works on helm version 2.4.2. The only issue is that it throws warnings which I am trying to eliminate.
2017/06/25 19:49:04 Warning: ImportValues missing table: no table named "storm-prd" (map[tags:map[prd-values:false dev-values:true] storm-dev:map[global:map[] exports:map[data:map[ … ]]]])

I tried adding a condition in requirements.yaml file, but it didn’t fix those warnings.
When I tried to use version 2.5.0, but it didn’t work at all. Subchart's values are not propagated to a main chart.
$ /usr/bin/helm.2.5.0 install -n legacy1 . --set tags.dev-values=true --debug --dry-run
[debug] Created tunnel using local port: '49381'

[debug] SERVER: "localhost:49381"

[debug] Original chart version: ""
[debug] CHART PATH: /home/robert/src/hubub-kubernetes/helm/storm

2017/06/25 19:56:30 Warning: ImportValues missing table: no table named "storm-dev" (map[tags:map[dev-values:false prd-values:false]])
2017/06/25 19:56:30 Warning: ImportValues missing table: no table named "storm-prd" (map[tags:map[dev-values:false prd-values:false]])
NAME:   legacy1
REVISION: 1
RELEASED: Sun Jun 25 19:56:32 2017
CHART: storm-0.1.0
USER-SUPPLIED VALUES:
tags:
  dev-values: true

COMPUTED VALUES:
tags:
  dev-values: true
  prd-values: false

HOOKS:
MANIFEST:

Regarding my problem I want to ask few questions:

Is there a better approach to have parametrized charts than what I am doing?
Am I hitting a bug in version 2.5.0 or I am using non supported method?
Is there a way to get rid of those warning messages? In my case I have main chart which consists of those application charts where each application has subcharts with values for each environment and this setup generates about a page of warning messages which I am trying to get rid of.

@jascott1 any feedback on this?

I'm not that experienced with Helm myself yet, but if I see this correctly, what you want to achieve could be done simpler with helm install -f your-prod-values.yml. Just put some good defaults in the Charts values.yml and move your environement specific values somewhere outside the Chart and change them to the values you want during your command line calls:
https://github.com/kubernetes/helm/blob/ecef026b68a23f0c1399d98425134ce837126831/docs/using_helm.md#customizing-the-chart-before-installing
https://github.com/kubernetes/helm/blob/master/docs/helm/helm_install.md

@thomastaylor312 i will check this out but if behaving as described by @polasekr then this is a bug ( a regression in 2.5 preventing ImportValues from working). It also sounds like ImportValues doesn't respect tag/conditions and tries to import chart values for disabled charts (which is a problem).

@jascott1 Ok sounds good. Let me know what you find and I'll label appropriately

Not a native Helm tool, but it's worth noting that this is something Draft solves within its own CLI. Each "environment" can set its own set of chart values in draft.toml
Breakdown of that feature here: https://github.com/Azure/draft/blob/master/docs/user-guide.md
I would argue that this could be solved nicely through a Helm plugin.

@dominik-bln
Proposed approach would work for help chart that doesn't have subcharts that supposed to be environment dependent. I have a main chart with few subcharts and I need to pass values to all subcharts based on the environment I run the chart in. The option of including all the variable files on the command line is not well scalable.

@bacongobbler I like that build in feature of draft allowing to natively selecting environment and building and deploying chart accordingly. It would be +1 from he for either such feature or helm plugin.

We have exactly the same problem as @polasekr and are looking for a solution as well. Wrapping environments into if-else or template helpers can't be the solution.
@dominik-bln this wouldn't work from a helm chart repository, because -f values-dev.yaml expects a local file (although values-dev.yaml is packaged into the chart), or would it?

There is another way of doing environment-specific values without using separate values files.

Define values as:

mysql:
    user:
        _default: myproject
        staging: myproject_staging
        testing: myproject_testing
    database:
        _default: myproject
        staging: myproject_staging
        testing: myproject_testing
...

Pass environment as value from cli: helm --set "global.env=staging" ...
Use values in templates that way:

- name: DATABASE_URL
  value: "{{ printf "mysql2://%s:password@mysql-host/%s" (pluck .Values.global.env .Values.mysql.user | first | default .Values.mysql.user._default) (pluck .Values.global.env .Values.mysql.database | first | default .Values.mysql.database._default) }}"

I am wondering whether anybody tested my scenario and confirmed that it is a bug with version 2.5 or the problem is somewhere in my local setup.

@polasekr I think @jascott1 has been busy trying to nail down a nasty locking bug, so he hasn't had time to test this one

@polasekr Can you please post your storm-prd and storm-dev values.yaml files? Those warnings suggest you don't have the requisite fields in your values files for importing.

This is a context of storm-dev valus.yaml file
exports:
  data:
    memcacheHost: "************.amazonaws.com:11211"
    cassandraDB: "***********"
    cassandraUser: "********"
    cassandraPass: "***********"
    postgresHost: "******************.amazonaws.com"
    postgresUser: '*******'
    postgresPass: '********'
    nexus_user: "***********"
    nexus_pass: "***********"
    nexus_url: "https://maven**********************************************.jar"
    nexus_artifact_md5: "31d7add829b588587a9f525fffafdcd2"
    storm_submit_class: "com.hubub.storm.topology.BaseSearchTopology"
    nimbus:
      ENVIRONMENT: "dev"
      nameOverride: "nimbus"
      replicaCount: 1
      annotations:
      image:
        pullSecret: secret-dockerhub-hubub
        repository: tenone/hubub-storm-docker
        #tag: "0.9.7-20170729"
        tag: "0.9.3-20170729"
        pullPolicy: Always
      env:
        - name: ZOOKEEPER_SVC
          value: zookeeper-csvc-legacy
        - name: NIMBUS_SVC
          value: localhost
        - name: STORM_LOCALDIR
          value: /srv
      volumes: []
      serviceType: ClusterIP
      service:
        - name: storm-nimbus
          port: 6627
          targetPort: 6627
      ingress:
        enabled: false
      args: [ "storm","nimbus" ]
      resources:
        limits:
          cpu: 1
          memory: 5000Mi
        requests:
          cpu: 10m
          memory: 500Mi
    supervisor:
      ENVIRONMENT: "dev"
      nameOverride: "nimbus"
      replicaCount: 1
      annotations:
      image:
        pullSecret: secret-dockerhub-hubub
        repository: tenone/hubub-storm-docker
        tag: "0.9.3-20170729"
        pullPolicy: Always
      env:
        - name: ZOOKEEPER_SVC
          value: zookeeper-csvc-legacy
        - name: NIMBUS_SVC
          value: nimbus-legacy
        - name: STORM_LOCALDIR
          value: /srv
      volumes:  []
      serviceType: ClusterIP
      service:
        - name: storm-nimbus
          port: 2181
          targetPort: 2181
      ingress:
        enabled: false
      args: [ "storm","supervisor" ]
      resources:
        limits:
          cpu: 1
          memory: 5000Mi
        requests:
          cpu: 10m
          memory: 128Mi
      volumes:
        - volume_source_name: storm-properties-legacy
          mnt_point: /etc/storm
          volume_type: secret
    ui:
      ENVIRONMENT: "dev"
      nameOverride: "storm-ui"
      replicaCount: 1
      annotations:
      image:
        pullSecret: secret-dockerhub-hubub
        repository: tenone/hubub-storm-docker
        tag: "0.9.3-20170729"
        pullPolicy: Always
      env:
        - name: ZOOKEEPER_SVC
          value: zookeeper-csvc-legacy
        - name: NIMBUS_SVC
          value: nimbus-legacy
        - name: STORM_LOCALDIR
          value: /srv
      volumes: []
      serviceType: ClusterIP
      service:
        - name: http
          port: 8080
          targetPort: 8080
      ingress:
        enabled: false
      args: [ "storm","ui" ]
      resources:
        limits:
          cpu: 1
          memory: 500Mi
        requests:
          cpu: 10m
          memory: 128Mi
    submit:
      ENVIRONMENT: "dev"
      nameOverride: "submit-job"
      annotations:
      image:
        pullSecret: secret-dockerhub-hubub
        repository: tenone/hubub-storm-docker
        tag: "0.9.3-20170729"
        pullPolicy: Always
      env:
        - name: ZOOKEEPER_SVC
          value: zookeeper-csvc-legacy
        - name: NIMBUS_SVC
          value: nimbus-legacy
        - name: STORM_LOCALDIR
          value: /srv
      volumes:  []
      service:
        name: http
        type: ClusterIP
        externalPort: 2181
        internalPort: 2181
      ingress:
        enabled: false
      args: [ "bash","/etc/storm/submit_script" ]
      resources:
        limits:
          cpu: 1
          memory: 1500Mi
        requests:
          cpu: 10m
          memory: 128Mi
      volumes:
        - volume_source_name: storm-properties-legacy
          mnt_point: /etc/storm
          volume_type: secret

This is a context of storm-prd valus.yaml file
exports:
  data:
    ENVIRONMENT: "prd"

Has been there any progress made on this case? I would like to upgrade to latest helm release, but this is a blocker. Any help appreciated.

Sorry for the delay @polasekr this fell off my radar for some reason. Im going to take a look at it now.

@polasekr Are the storm-dev and storm-prd charts the same other than values?

@polasekr I created tests charts to reflect this and it is working for me on helm v2.6.x but I do see the warnings and have confirmed this is a bug. The ImportValues processor is downstream of EnableModules but isn't getting a filtered dependency list, hence the warnings when ImportValues looks for a disabled chart's table. Hopefully I can get a PR in early next week.
In the meanwhile do you think you can test with 2.6.0? Like I said although I get the warnings it is working for me.

Hi jascott1,

@polasekr Are the storm-dev and storm-prd charts the same other than values?

Yes, storm-dev and storm-prd have just differnet values, there is nothing else there.
I tested helm 2.6.0 as you suggested and it works fine in terms of main chart seeing values from sub-charts and templates of sub-charts are rendered correctly.
Unfortunately I also encounter different behavior from version 2.4.2.
My requirements.yaml are as follows:
dependencies:
  - name: hubub-dev
    repository: "file://charts/hubub-dev"
    version: ">= 0.0.1"
    tags:
      - dev-values
    import-values:
      - data

  - name: hubub-prd
    repository: "file://charts/hubub-prd"
    version: ">= 0.0.1"
    tags:
      - prd-values
    import-values:
      - data

  - name: secret-hubub-config
    version: ">= 0.0.1"
    repository: "file://../hubub-subcharts/secret-hubub-config"

  - name: secret-dockerhub
    version: ">= 0.0.1"
    repository: "file://../hubub-subcharts/secret-dockerhub"

    .
    .
    .

Tree structure looks like this:
hubub
├── charts
│   ├── hubub-dev
│   │   ├── Chart.yaml
│   │   └── values.yaml
│   └── hubub-prd
│       ├── Chart.yaml
│       └── values.yaml
├── Chart.yaml
├── requirements.lock
├── requirements.yaml
├── templates
│   ├── _configmap.yaml
│   ├── _deployment_multideployment.yaml
│   ├── _deployment_multi_elb.yaml
│   ├── _deployment.yaml
│   ├── _helpers.tpl
│   ├── _job_global_values_placeholder.yaml
│   ├── _pvc.yaml
│   ├── _secret-fromfiles.yaml
│   ├── _secret-fromtemplates.yaml
│   ├── _svc_internal.yaml
│   ├── _svc_multideployment_individual.yaml
│   ├── _svc_multideployment.yaml
│   ├── _svc_multi_elb.yaml
│   └── _svc.yaml
└── values.yaml

Sub-charts hubub-dev and hubub-prd are in charts subdirectory of hubub chart. When I do
helm dependency update --debug

I am getting following error:
Error: chart metadata (Chart.yaml) missing
robert@razer-laptop:~/src/hubub-kubernetes$ cd hubub
robert@razer-laptop:~/src/hubub-kubernetes/hubub$ helm.2.6.0 dependency update --debug
Repository from local path: file://charts/hubub-dev
Repository from local path: file://charts/hubub-prd
Repository from local path: file://../hubub-subcharts/secret-hubub-config
Repository from local path: file://../hubub-subcharts/secret-dockerhub
Repository from local path: file://../hubub-subcharts/api
Repository from local path: file://../hubub-subcharts/core
Repository from local path: file://../hubub-subcharts/graylog
Repository from local path: file://../hubub-subcharts/object
Repository from local path: file://../hubub-subcharts/reverse-proxy
Repository from local path: file://../hubub-subcharts/rss-bridge
Repository from local path: file://../hubub-subcharts/rss-gen
Repository from local path: file://../hubub-subcharts/search
Repository from local path: file://../hubub-subcharts/stream
Repository from local path: file://../hubub-subcharts/ui
Repository from local path: file://../hubub-subcharts/user
Repository from local path: file://../hubub-subcharts/zookeeper
Repository from local path: file://../hubub-subcharts/storm
Repository from local path: file://../hubub-subcharts/scrape
Hang tight while we grab the latest from your chart repositories...
...Unable to get an update from the "local" chart repository (http://<IP_ADDRESS>:8879/charts):
        Get http://<IP_ADDRESS>:8879/charts/index.yaml: dial tcp <IP_ADDRESS>:8879: getsockopt: connection refused
...Successfully got an update from the "stable" chart repository
Update Complete. ⎈Happy Helming!⎈
Saving 18 charts
Archiving hubub-dev from repo file://charts/hubub-dev
Save error occurred:  directory /home/robert/src/hubub-kubernetes/hubub/charts/hubub-dev not found
Deleting newly downloaded charts, restoring pre-update state
Error: directory /home/robert/src/hubub-kubernetes/hubub/charts/hubub-dev not found

The directory exists and have correct permissions, just the problem seems that it is inside hubub chart.
Same command works fine in version 2.4.2. In order to make it working, I had to move those two sub-charts out of hubub chart and refer to them as
file://../hubub-dev
and
file://../hubub-prd

in requirements.yaml file and that works.
I am not sure whether it is a change of behavior or it is a bug.

That was a bug which was fixed in helm v2.6.1: https://github.com/kubernetes/helm/releases/tag/v2.6.1
I'd suggest upgrading and trying again, @polasekr :)

Hi @polasekr
Did @bacongobbler 's suggestion resolve this for you?

I'm on version 2.7.2 and I'm still hitting the issues outlined by @polasekr.
I have an almost identical setup, where the parent chart's requirements.yaml is referencing subcharts and using import-values according to which tags has been specified.
Warning: ImportValues missing table: no table named "exports" (map[global:map[]])

+1 for the proposed solution to allow certain values files to be selected from inside the chart based on a new concept of "environment" - I am currently working around this with custom tooling, like most others.

Seems to be broken in 2.8.x as well. A short with example charts: https://github.com/vishal-biyani/helm-subchart-env-values

We handle this by putting an additional yaml file into the chart and installing with a wrapper that extracts the relevant section of that yaml file and feeds it to helm with -f.
We use two levels: cluster and namespace. We find the term "environment" to be ambiguous through overuse.

I'm not that experienced with Helm myself yet, but if I see this correctly, what you want to achieve could be done simpler with helm install -f your-prod-values.yml. Just put some good defaults in the Charts values.yml and move your environement specific values somewhere outside the Chart and change them to the values you want during your command line calls:
https://github.com/kubernetes/helm/blob/ecef026b68a23f0c1399d98425134ce837126831/docs/using_helm.md#customizing-the-chart-before-installing
https://github.com/kubernetes/helm/blob/master/docs/helm/helm_install.md

I don't think this solves the problem gracefully. The issue is that you want to ship the environment specific files with the chart, so the client can choose what environment to install rather than search for the override files. I would be able to do something like
helm install ... --set environment=prod otherwise you have to figure out now how to ship your-prod-values.yml file to your continuous deliver box that will deploy your chart.

@polasekr can I ask what is in your main Chart.yaml file? I'm trying to replicate what you have setup, but I'm unclear what that file contains?

Currently I'm using helm client/server 2.14.1 and I've setup my folders the exact same way as @polasekr did for different environments.
I haven't seen any warnings with this version.

@ KidA001
I don't have access to the chart anymore, but there was absolutely nothing special about Chart.yaml file. It was same as generated by "helm create"


Main

Here is my contribution

@Abhi-goyal1  Please create an issue first. Once you're assigned, feel free to open a Pull Request (PR). Be sure to follow the contribution guidelines properly. And don’t forget to star this repo if you haven't already! ⭐ Thank you!


Fixes #113 where version 1.21.0 was falling back to 1.21

Fixes #113
OK should have no impact
╭─pulkit.kathuria@JP-GCJKVGQK0G^M ~/git/gobrew ‹feature/semantic-comply›
╰─$ go run cmd/gobrew/main.go install 1.21rc3
==> [Info] Downloading version: 1.21rc3
==> [Info] Downloading from: https://go.dev/dl/go1.21rc3.darwin-arm64.tar.gz
==> [Info] Downloading to: /Users/pulkit.kathuria/.gobrew/downloads
Downloading   0% |

OK - should fail
╭─pulkit.kathuria@JP-GCJKVGQK0G^M ~/git/gobrew ‹feature/semantic-comply›
╰─$ go run cmd/gobrew/main.go install 1.21                                                                                1 ↵
==> [Info] Downloading version: 1.21
==> [Info] Downloading from: https://go.dev/dl/go1.21.darwin-arm64.tar.gz
==> [Info] Downloading to: /Users/pulkit.kathuria/.gobrew/downloads
==> [Info] Downloading version failed: https://go.dev/dl/go1.21.darwin-arm64.tar.gz returned status code 404
==> [Error]: Please check connectivity to url: https://go.dev/dl/go1.21.darwin-arm64.tar.gz
exit status 1

OK should pass
╭─pulkit.kathuria@JP-GCJKVGQK0G^M ~/git/gobrew ‹feature/semantic-comply›
╰─$                                                                                1 ↵
╭─pulkit.kathuria@JP-GCJKVGQK0G^M ~/git/gobrew ‹feature/semantic-comply›
╰─$ go run cmd/gobrew/main.go install 1.21.0                                                                                130 ↵
==> [Info] Downloading version: 1.21.0
==> [Info] Downloading from: https://go.dev/dl/go1.21.0.darwin-arm64.tar.gz
==> [Info] Downloading to: /Users/pulkit.kathuria/.gobrew/downloads
Downloading   4% |████████                                                                                | (2.8/62 MB, 10 MB/s) [0s:5s]^Csignal: interrupt

OK Keep ASIS passing https://github.com/kevincobain2000/gobrew/pull/24
╭─pulkit.kathuria@JP-GCJKVGQK0G^M ~/git/gobrew ‹feature/semantic-comply›
╰─$ go run cmd/gobrew/main.go install 1.17.0                                                                                1 ↵
==> [Info] Downloading version: 1.17
==> [Info] Downloading from: https://go.dev/dl/go1.17.darwin-arm64.tar.gz
==> [Info] Downloading to: /Users/pulkit.kathuria/.gobrew/downloads
Downloading   0% |                                                                                | (1.1/123 MB, 6.3 MB/s) [0s:19s]^Csignal: interrupt
╭─pulkit.kathuria@JP-GCJKVGQK0G^M ~/git/gobrew ‹feature/semantic-comply›
╰─$ go run cmd/gobrew/main.go install 1.17                                                                                1 ↵
==> [Info] Downloading version: 1.17
==> [Info] Downloading from: https://go.dev/dl/go1.17.darwin-arm64.tar.gz
==> [Info] Downloading to: /Users/pulkit.kathuria/.gobrew/downloads
Downloading   2% |████                                                                                | (3.4/123 MB, 9.1 MB/s) [0s:13s]^Csignal: interrupt
╭─pulkit.kathuria@JP-GCJKVGQK0G^M ~/git/gobrew ‹feature/semantic-comply›
╰─$ go run cmd/gobrew/main.go ls-remote |tail -5                                                                                1 ↵
	1.20rc1  1.20rc2  1.20rc3

1.21	1.21.0
	1.21rc1  1.21rc2  1.21rc3  1.21rc4

Codecov Report

Merging #114 (e617907) into master (f0c6945) will not change coverage.
The diff coverage is n/a.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@           Coverage Diff           @@
##           master     #114   +/-   ##
=======================================
  Coverage   50.59%   50.59%
=======================================
  Files           1        1
  Lines         508      508
=======================================
  Hits          257      257
  Misses        214      214
  Partials       37       37


pass down in composition

Check out the following code that we want to dynamize:
import typing as th
import torch
from .linear import MaskedLinear
import dycode

class MaskedBlock(MaskedLinear):
    def __init__(
        self,
        # linear args
        in_features: th.Union[th.List[int], int],
        out_features: th.Union[th.List[int], int],
        bias: bool = True,
        # activation
        activation: th.Optional[str] = None,
        activation_args: th.Optional[dict] = None,
        # batch norm
        batch_norm: bool = False,
        batch_norm_args: th.Optional[dict] = None,
        # ordering args
        auto_connection: bool = True,
        # general parameters
        device: th.Optional[torch.device] = None,
        dtype: th.Optional[torch.dtype] = None,
        mask_dtype: torch.dtype = torch.uint8,
    ):
        # init linear
        super().__init__(
            in_features=in_features,
            out_features=out_features,
            bias=bias,
            auto_connection=auto_connection,
            device=device,
            dtype=dtype,
            mask_dtype=mask_dtype,
        )

        self.activation = dycode.eval(activation)(**(activation_args or dict())) if activation else None
        self.batch_norm = (
            torch.nn.BatchNorm1d(num_features=out_features, dtype=dtype, device=device, **(batch_norm_args or dict()))
            if batch_norm
            else None
        )

    def forward(self, inputs: torch.Tensor, perm_mat: torch.Tensor) -> torch.Tensor:
        outputs = super().forward(inputs, perm_mat)
        outputs = self.activation(outputs) if self.activation else outputs
        outputs = self.batch_norm(outputs) if self.batch_norm else outputs
        return outputs

Note that if we rewrite batch_norm as a dyw.composite then the device and dtype of the composite objects might defer from the whole object.
Therefore, it is good to have some pass_down arguments; for example, MaskedBlock(pass_down_device=sth) not only will it set device to sth for masked block, but also set all the composite object device attributes to sth as well.

Checkout #10 for a generalized proposed way of implementing this.


Make DownloadManager's query methods available as public API

The DownloadManager provides the convenience methods DownloadState query(int downloadId) and DownloadState query(String url). Is there any technical reason who those are not available as public API? Or just a design choice? Would be nice to fetch the download state.

Thanks for your issues. All the state is in callback, so why you want to fetch the download state manually.  This is just to make downloader simple and easy.

There are a lot of use cases, e.g. to fetch if a download is running or already finished.

onStart and onSuccess is enough.

Not if I have to fetch the state later on demand. Therefore, I have to keep the state in another collection on the application-side at the moment.


Remove sudo from bootstrap commands

Issue #, if available:
Description of changes:
sudo commands are removed from the bootstrap script.
This helps to resolve the issue outlined in this article which describes a permission issue with sudo commands in cloud_init scripts that results in a timeout when SELinux is enabled. This leads to extended bootstrap times (+25 sec per sudo). Before this pull request, customers that enable SELinux would have to either add an SELinux policy module or remove sudo commands from the bootstrap script to prevent timeout.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

I think we should add an assertion to the start of the script that it's being run as `root, something like:
if [ "$EUID" -ne 0 ]; then
  log "ERROR: must be run as root"
  exit 1
fi

/ci
+workflow:os_distros al2

This LGTM, I'm getting another set of eyes on it.


chore: fix ci

PR o'clock
Description
fixing failing CI
Checklist

[ ] README.md has been updated after any changes to variables and outputs. See https://github.com/terraform-aws-modules/terraform-aws-eks/#doc-generation

@antonbabenko  this fix Github actions CI

Thanks for this. I completely forgot that today is November 2 - https://github.blog/2021-09-01-improving-git-protocol-security-github/ :)

This PR is included in version 17.24.0 :tada:


Is it possible to go to next or previous month instead of year when using the arrows that are next to month?

I mean when pressing the arrow shown in the attached image you would be able to go to next month:

Would it be posible to change calendar behavior so it just displays one month at once (user can just scroll for that month) and pressing that arrow would show next month? (For this case let's consider that the shown month would be June 2018 and when the arrow were to be pressed it would show July 2018).

Hi @yujlty!
Unfortunately, the current version does not support this functionality, but we will think about it!


Targeted Universal Perturbation documentation and example script

Description
Enhances the documentation for the TargetedUniversalPerturbation class in ART. It includes a detailed explanation of some of the parameters in the constructor.

Corrected the allowed adversarial attacker name and which is the default.
Explain what delta and eps do. Please feel free to correct me if I got it wrong and/or cut it short if it is too long.
Added :raises: ValueError in the generate() method for the docs.

The added documentation improves the code's readability and helps users understand the purpose and usage of the class more effectively.
Also, I added an example script that uses this attack (mostly derived from the test for this attack. I can make this into a notebook if you think that makes more sense.
Fixes # (issue)
Type of change
Please check all relevant options.

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

Testing
Please describe the tests that you ran to verify your changes. Consider listing any relevant details of your test configuration.

[ ] Test A
[ ] Test B

Test Configuration:

OS
Python version
ART version or commit number
TensorFlow / Keras / PyTorch / MXNet version

Checklist

[x] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[x] I have commented my code
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes

Codecov Report

Merging #2212 (a91c684) into main (bc39091) will decrease coverage by 58.41%.
The diff coverage is n/a.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.

@@             Coverage Diff             @@
##             main    #2212       +/-   ##
===========================================
- Coverage   85.62%   27.21%   -58.41%
===========================================
  Files         308      308
  Lines       27448    27447        -1
  Branches     5044     4984       -60
===========================================
- Hits        23502     7470    -16032
- Misses       2667    19653    +16986
+ Partials     1279      324      -955

Impacted Files
Coverage Δ

...attacks/evasion/targeted_universal_perturbation.py
24.71% <ø> (-66.30%)
:arrow_down:

... and 243 files with indirect coverage changes


Flatten my .md file !!

Rasa version: 1.3.9
Rasa X version (if used & relevant):
how do I get it ?
Python version:
3.6
Operating system (windows, osx, ...):
linux
Issue:
Let say I have  retrevial-response .md intent file :

## intent: faq/basic_syntax+identifier
- what is Python identifier ?
- what is identifier

## intent: faq/basic_syntax+identifier_format
- what is the format of identifier ?
- how do you format python identifier

....

It seems that when I do something (dont know exactly what ) in RasaX it flattens my .md file !!?
It also reorders my nlu.md file !?!? makes it harder finding stuff
## intent: faq
- what is Python identifier ?
- what is identifier
- what is the format of identifier ?
- how do you format python identifier
....

Error (including full traceback):

Command or request that led to error:

Content of configuration file (config.yml) (if relevant):

Content of domain file (domain.yml) (if relevant):

Thanks for the issue, @Ghostvv will get back to you about it soon!
You may find help in the docs and the forum, too 🤗

Thank you for raising the issue, unfortunately response selector format is not yet supported by rasa-x

i see ... but the nlu file for response selector have the same format ... it looks like a problem with the complex intent on the surface !!
## intent: faq/basic_syntax+identifier_format

the problem is with response selector id after intent, rasa-x doesn't support printing it yet

It's not a bug, will be implemented when supporting response selector as a feature in Rasa X


refactor: higress test framework

Signed-off-by: bitliu<EMAIL_ADDRESS>

Codecov Report

Merging #178 (225ad31) into main (40f4d78) will decrease coverage by 0.21%.
The diff coverage is n/a.

Additional details and impacted files

@@            Coverage Diff             @@
##             main     #178      +/-   ##
==========================================
- Coverage   42.21%   42.00%   -0.21%
==========================================
  Files          29       29
  Lines        4866     4866
==========================================
- Hits         2054     2044      -10
- Misses       2651     2661      +10
  Partials      161      161

Impacted Files
Coverage Δ

pkg/bootstrap/server.go
55.34% <0.00%> (-3.82%)
:arrow_down:


Allow importing python modules for dynamic context

Use case: Having a project-wide compilation-date for template usage.
context:
  dynamic:
    compliation-date: from datetime import date; date.today().isoformat()

	Generated on {{ compilation_date }}

If done with a custom jinja tag, the date would be generated each time called.

The easiest (and most versatile) way to do that at the moment is just the following:

    Generated on {{ datetime.now|date("%Y-%m-%d") }}

Oh, of course. I was still thinking in terms of Django and the like. Still, it'd be nice to have a global constant for similar use cases, because if generation is done around 23:59:59, you may end with two different dates. Still, that may be more appropiate for a templatetag anyways.


Firefox browser is not launching after the auto update with qaf 3.0.1 and selenium 3.141.59 version. @qaf

QAF Version

Note: only the latest version is supported
QAF 3.0.1 and selenium 3.141.59

Steps To Reproduce
1. Trying to launch firefox browser
2. Using latest gecko driver for geckodriver-v0.33.0-win-aarch64
3. Firefox version is 114.0.1

Expected behavior
It should launch the browser.
Actual behavior
Timed out after 0 seconds: Unable to create driver instance in 1st attempt with retry timeout of 0 seconds. You can check/set value of 'driver.init.retry.timeout' appropriately to set retry timeout on driver initialization failure.
Tried to launch firefox with only selenium , its launching.
Is the issue reproducible on runner?

[ ] Maven yes
[ ] Eclipse yes

Test case sample

Please, share the test case (as small as possible) which shows the issue

try with latest selenium version. Latest selenium version supported with 4.0.0-RC1. 4.0.0-RC1 has known issue #444 so If you are using extra capabilities then try 4.0.0-SNAPSHOT.


Minecraft Color Coded Text doesn't hide code

When you add text with minecraft § color codes it changes the text color but also displays the § symbol as part of the text.

It doesn't for me :P. Screenshot please?

http://gyazo.com/84cb220bf64aa6c13f09202b37b27529  <-- Screen Shot of the problem on Gyazo. I took the codes out of the current version that we sent to FTB but it would be nice if we could get this to work.
In case you want to check out the pack and the other mods in it (maybe something is conflicting) -
Run Dig Hide version 1.1 beta on FTB launcher 3rd Party packs. Pack Code is ptnoobcrew (this newest version should be available on FTB in the next few hours)
Latest info on the pack and all the mods in it is at http://noobmc.com/index.php/run-dig-hide-modpack
From: Lumien<EMAIL_ADDRESS>Sent: Monday, January 5, 2015 4:19 AM
To: lumien231/Custom-Main-Menu
Cc: JimmyMac3
Subject: Re: [Custom-Main-Menu] Minecraft Color Coded Text doesn't hide code (#8)
It doesn't for me :P. Screenshot please?
—
Reply to this email directly or view it on GitHub.

Thanks. That fixed it. Works great now! :)
From: Lumien<EMAIL_ADDRESS>Sent: Monday, January 5, 2015 2:24 PM
To: lumien231/Custom-Main-Menu
Cc: JimmyMac3
Subject: Re: [Custom-Main-Menu] Minecraft Color Coded Text doesn't hide code (#8)
Save the config file in ASCII instead of UTF
—
Reply to this email directly or view it on GitHub.


Download Artifact step returning "Authentication Required" on local servers

Agent Version and Platform
2.193.0 (and 2.194.0), Windows server 2012 R2 web servers.
Azure DevOps Type
dev.azure.com
What's not working?
Our Azure agent recently stopped working. We have been using Azure release pipelines for continuous deployment of an IIS application. It gives us a very non-descript "Authentication required" error. We noticed this on 10/13/2021. At the time that the error started, I believe we were on version 2.193.0. We are now on 2.194.0 and the issue is still occurring. To ensure it wasn't something with our Azure configuration, I tested this on both my work PC (on our network) and on my home PC (off network) and it worked in both places.  Therefore, it seems to only happen on our on-network servers.
This may possibly be related to https://github.com/microsoft/azure-pipelines-agent/issues/3583, however we haven't been able to tie it to a proxy issue and there are no firewall blocks occurring. We have also tried uninstalling the agents, as well as completely removing all of our Azure configuration and doing it from scratch and we get the same error.

Agent Diagnostic Logs
2021-10-18T20:44:18.1399175Z ##[debug]Evaluating condition for step: 'Download artifact - _myproject - _myproject'
2021-10-18T20:44:18.1439702Z ##[debug]Evaluating: succeeded()
2021-10-18T20:44:18.1445026Z ##[debug]Evaluating succeeded:
2021-10-18T20:44:18.1483132Z ##[debug]=> True
2021-10-18T20:44:18.1491321Z ##[debug]Result: True
2021-10-18T20:44:18.1532198Z ##[section]Starting: Download artifact - _myproject - _myproject
2021-10-18T20:44:18.1961448Z ==============================================================================
2021-10-18T20:44:18.1961906Z Task         : Download pipeline artifact
2021-10-18T20:44:18.1962269Z Description  : Download a named artifact from a pipeline to a local path
2021-10-18T20:44:18.1962470Z Version      : 1.2.5
2021-10-18T20:44:18.1962782Z Author       : Microsoft Corporation
2021-10-18T20:44:18.1963334Z Help         : Download a named artifact from a pipeline to a local path
2021-10-18T20:44:18.1963578Z ==============================================================================
2021-10-18T20:44:18.4789044Z Download from the specified build: #2263
2021-10-18T20:44:18.4791191Z Download artifact to: D:\azagent\myproject_work\r1\a/_myproject/_myproject
2021-10-18T20:44:18.8728223Z Verbose, [CreateDedupManifestClientAsync] Try 1/5, retryable exception caught. Retrying in 00:00:01. Microsoft.VisualStudio.Services.WebApi.VssServiceResponseException: Authentication Required
2021-10-18T20:44:18.8729052Z    at Microsoft.VisualStudio.Services.WebApi.VssHttpClientBase.HandleResponseAsync(HttpResponseMessage response, CancellationToken cancellationToken)
2021-10-18T20:44:18.8729972Z    at Microsoft.VisualStudio.Services.WebApi.VssHttpClientBase.SendAsync(HttpRequestMessage message, HttpCompletionOption completionOption, Object userState, CancellationToken cancellationToken)
2021-10-18T20:44:18.8730690Z    at Microsoft.VisualStudio.Services.WebApi.VssHttpClientBase.SendAsync[T](HttpRequestMessage message, Object userState, CancellationToken cancellationToken)
2021-10-18T20:44:18.8731302Z    at Microsoft.VisualStudio.Services.Location.Client.LocationHttpClient.GetConnectionDataAsync(ConnectOptions connectOptions, Int64 lastChangeId, CancellationToken cancellationToken, Object userState)
2021-10-18T20:44:18.8731978Z    at Microsoft.VisualStudio.Services.WebApi.Location.VssServerDataProvider.GetConnectionDataAsync(ConnectOptions connectOptions, Int32 lastChangeId, CancellationToken cancellationToken)
2021-10-18T20:44:18.8732555Z    at Microsoft.VisualStudio.Services.WebApi.Location.VssServerDataProvider.ConnectAsync(ConnectOptions connectOptions, CancellationToken cancellationToken)
2021-10-18T20:44:18.8733094Z    at Microsoft.VisualStudio.Services.WebApi.Location.VssServerDataProvider.EnsureConnectedAsync(ConnectOptions optionsNeeded, CancellationToken cancellationToken)
2021-10-18T20:44:18.8733663Z    at Microsoft.VisualStudio.Services.WebApi.Location.VssServerDataProvider.CheckForServerUpdatesAsync(CancellationToken cancellationToken)
2021-10-18T20:44:18.8734201Z    at Microsoft.VisualStudio.Services.WebApi.Location.VssServerDataProvider.FindServiceDefinitionAsync(String serviceType, Guid serviceIdentifier, CancellationToken cancellationToken)
2021-10-18T20:44:18.8734958Z    at Microsoft.VisualStudio.Services.WebApi.Location.VssServerDataProvider.LocationForCurrentConnectionAsync(String serviceType, Guid serviceIdentifier, CancellationToken cancellationToken)
2021-10-18T20:44:18.8735519Z    at Microsoft.VisualStudio.Services.WebApi.Location.LocationService.ResolveLocationDataAsync(Guid locationAreaIdentifier, CancellationToken cancellationToken)
2021-10-18T20:44:18.8736036Z    at Microsoft.VisualStudio.Services.WebApi.Location.LocationService.GetLocationDataAsync(Guid locationAreaIdentifier, CancellationToken cancellationToken)
2021-10-18T20:44:18.8736631Z    at Microsoft.VisualStudio.Services.WebApi.VssConnection.GetClientInstanceAsync(Type managedType, Guid serviceIdentifier, CancellationToken cancellationToken, VssHttpRequestSettings settings, DelegatingHandler[] handlers)
2021-10-18T20:44:18.8737255Z    at Microsoft.VisualStudio.Services.WebApi.VssConnection.GetClientServiceImplAsync(Type requestedType, Guid serviceIdentifier, Func4 getInstanceAsync, CancellationToken cancellationToken) 2021-10-18T20:44:18.8738854Z    at Microsoft.VisualStudio.Services.WebApi.VssConnection.GetClientAsync[T](CancellationToken cancellationToken) 2021-10-18T20:44:18.8739525Z    at Microsoft.VisualStudio.Services.WebApi.TaskExtensions.SyncResult[T](Task1 task)
2021-10-18T20:44:18.8739923Z    at Microsoft.VisualStudio.Services.WebApi.VssConnection.GetClientT
2021-10-18T20:44:18.8740372Z    at Microsoft.VisualStudio.Services.Agent.Blob.DedupManifestArtifactClientFactory.<>c__DisplayClass2_0.b__0()
2021-10-18T20:44:18.8740847Z    at Microsoft.VisualStudio.Services.Content.Common.AsyncHttpRetryHelper`1.InvokeAsync(CancellationToken cancellationToken)
2021-10-18T20:44:18.8741215Z Verbose, Details:
2021-10-18T20:44:18.8741600Z No LastRequestResponse on exception VssServiceResponseException: Authentication Required
2021-10-18T20:44:19.9351139Z Verbose, [CreateDedupManifestClientAsync] Try 2/5, retryable exception caught. Retrying in 00:00:02.0448362. Microsoft.VisualStudio.Services.WebApi.VssServiceResponseException: Authentication Required
(Log entries repeat up to 5 attempts)
2021-10-18T20:44:47.8952887Z ##[section]Finishing: Download artifact - _myproject - _myproject

I am closing this, we have discovered the issue. dev.azure.com got removed from our list of trusted sites on these servers.


对于高于限制线的点，我怎么改变点的样式和颜色呢？

use English :( though I know Chinese. For those values higher than your chart limit line, you need to override chart renderer to have some customizations.


British Columbia holidays in 2021 and 2022 include 'Christmas Shift'.

Don't believe it is a legitimate holiday, how to remove from registry?
link to official CA-BC holidays: [https://www2.gov.bc.ca/gov/content/employment-business/employment-standards-advice/employment-standards/statutory-holidays]

apparently, they're not official, you're right.
In my opinion, as the library is currently designed, if you really want to include Boxing day in your calendar, all you have to do is to "dynamically" change the way it computes its holidays:
>>> cal = BritishColumbia()
>>> cal.include_boxing_day = True
>>> cal.holidays(2021)
[(datetime.date(2021, 1, 1), 'New year'),
 (datetime.date(2021, 2, 15), 'Family Day'),
 (datetime.date(2021, 4, 2), 'Good Friday'),
 (datetime.date(2021, 5, 24), 'Victoria Day'),
 (datetime.date(2021, 7, 1), 'Canada Day'),
 (datetime.date(2021, 8, 2), 'British Columbia Day'),
 (datetime.date(2021, 9, 6), 'Labor Day'),
 (datetime.date(2021, 10, 11), 'Thanksgiving'),
 (datetime.date(2021, 11, 11), 'Remembrance Day'),
 (datetime.date(2021, 12, 25), 'Christmas Day'),
 (datetime.date(2021, 12, 26), 'Boxing Day'),
 (datetime.date(2021, 12, 27), 'Christmas Shift')]

Also, you may want to inherit from the base BritishColumbia class and override the variable day computation:
class BritishColumbiaIncludeBoxingDay(BritishColumbia):
    def get_variable_days(self, year):
        days = super().get_variable_days(year)
        if year in (2021, 2022):
            days.append((date(year, 12, 26), self.boxing_day_label))
        return days

And also for any kind of customization you may need in your custom calendars.
Is that solving your issue, here?

Thank you I will try to dynamically remove the ‘Christmas Shift’ day In the list.

you're very welcome. have a nice day!


Add rubocop

Good example in https://github.com/mongoid/mongoid_orderable/pull/51

Cosed via https://github.com/mongoid/mongoid-geospatial/pull/52.