Add conditional tests in goss files

The short story : I would like to be able to load variables in my goss files.
The context :
Goss is played on local hosts, but combined with ansible it could be used to validate a set of servers, with
Goss files sent and played on each remote servers.
The problem :
Tests sets should be adapted to specific operating systems.
If I want to validate that mysql client package is installed, I would check for 'mysql' package on redhat servers or 'mysql-client' package on debian servers.
If I want to validate a specific version, I would check for mysql-5.1.73 on centos 6 or mysql-client-5.6 on ubuntu 16.04.
In this example, at least the package name and the version should be readable from a variable if I want to keep one goss file for all my servers.
I may whish to activate tests under specific conditions, too. A variable {use_systemd} may lead to add more tests, or modify some tests for a specific server.
My solution :
Actualy, I'm able to launch goss with ansible with a specific goss file for each OS.
My needs :
It would be awesome if goss was able to parse the var files of my ansible role.
So I would have the same input for both my role and the tests validating my role.
A variable {{ssh_enable}} set to true would allow ansible to start the sshd service and goss to test that sshd is listening on port {{ssh_port}}.
If set to false, it would be possible to skip the associated test with goss.

In the meantime I would love to get @taurus-forever and @mika feedback on this feature.
Basically, at a high level my thoughts are, a user is able to provide a yaml/json with variables, and the goss.yml files are treated as golang text/template. This way the JSON/YAML can also be generated from specialized sys fact tools like factor or ohai... But I have a few concerns:

How useful is this? On one hand using text templating language to generate valid YAML/JSON can sometimes be painful, but this will handle both the conditional and variable use case. And other projects do this (ex. kubernetes/helm)

How have you found using external templating languages, I'm not sure how mature the golang templating language is since I haven't used it, but I know for example Ansible/Jinja2 is pretty flexible, will incorporating this in Goss be an improvement for Ansible users? There's also http://jsonnet.org/ which is very powerful, but comes with a steep learning curve.

Would love to get more feedback on where users feel the responsibility of goss begins and ends with regards to variable and conditional tests.

Ok, so sort of back from vacation, some thoughts:
So the template solution I'm thinking of would be something like this:
goss --vars somevars.{json,yaml} validate
Where somevars.json would be an arbitrary set of user provided variables (ex, output of facter):
{
    "os": {
        "distro": {
            "id": "Fedora"
        }
    }
}

And the goss.yaml would be a golang text template, ex:
service:
  {{- if eq .os.distro.id "Fedora"}}
    httpd:
  {{- else}}
    apache2:
  {{- end}}
    enabled: true
    running: true

This would allow for complex templating while keeping goss out of the business of generating vars from the server. A user would be able to use whatever external var file or tool they like by leveraging bash process substitution. For example, using puppetlabs facter would be:
goss --vars <(facter -j) validate

Thoughts?

I would say the last option should do the job.
While you are opening Pandora's box here.
Adding non-linear logic will require better understanding what is going on inside,
kind of some debug/verbose mode. Otherwise it will be hard to understand what is going on inside the test:
> Total Duration: 0.123s
> Count: 195, Failed: 0, Skipped: 0

The output above doesn't allow you to trace which testcase has been executed, etc.
P.S. it might be great to have some ability to use env variables, like:
TEST_DNS=false goss validate

yes last options looks good

I want to run the same test to verify a service is reachable, acls/iptables are correct, etc in different subnets. Being able to pass such information would be very helpful.

To complete your example of a templating solution, it would be nice to get the content of the variables available in the goss file :
service:
 {{- if eq .os.distro.id "Fedora"}}
  httpd:
 {{- else if eq .os.distro.id "Fedora"}}
  apache2:
 {{- end}}
    enabled: {{ .thisUserWillActivateItLater }}
    running: {{ .thisUserWantsApacheRunning }}

This would allow complex templating as well as simple goss files like :
service:
    {{ .os.distro.service }}:
      enabled: {{ .thisUserWillActivateItLater }}
      running: {{ .thisUserWantsApacheRunning }}

With an OS specific somevars.json :
{
    "os": {
        "distro": {
            "id": "Fedora"
            "service": "httpd"
        }
    }
    "thisUserWillActivateItLater" : true
    "thisUserWantsApacheRunning" : true
}

The need is to test both system (depends on remote OS) and user (depends on user configuration) specific rules. The ability to call goss with --vars option multiple time may be usefull to help running this kind of test.

Released in v0.3.0

Hey guys, sorry for bringing this up.
Conditions in goss testing is definitely a good topic. Easy usage would be a great feature, so just wonder if adding something like puppet does with "onlyif / unless" makes sense?
In that case, early mentioned YAML would be even simpler. Say, skipping this under light docker container, or under RHEL6, executing only under Vagrant or RHEL7. Just a suggestion to see if this might be a good idea.
service:
   my-service:
    enabled: true
    running: true
    onlyif: 'which systemctl && ! ls /.dockerenv'

facter usage works well but complicates some of the YAML templates, they might easily become unnecessary complex.


shortcuts to support XButton1 and XButton2

Use case
shortcuts: const <ShortcutActivator, Intent>{
    SingleActivator(LogicalKeyboardKey.XButton1): IncrementIntent(),
},

Proposal
XButton1 (4th mouse button. Typically performs the same function as Browser_Back.)
XButton2 (5th mouse button. Typically performs the same function as Browser_Forward.)
those be added as possible things to click for shortcuts

explaining better i wanna be able to use the side buttons in my mouse as shortcuts

@Zereef
Can you check if this open proposal resembles your case ?

Please follow-up in the linked issue for further updates. Closing this as a duplicate.


Case sensitivity

How can i eliminate case sensitivity?
Thanks.

Please describe the test cases?

"Jtreix" the query I apply to this nick;
$row = DB::table('users')->where('username', '=', strip_tags($_GET['par']))->find();

I just now checked version 1.1.4 and found the case sensitivity is eliminated already.

I just now checked version 1.1.4 and found the case sensitivity is eliminated in findAll function.

Yep, that was done in 2015
rev: 735f0e7adceceef269dec4cb7351c3397d557e9c


SaveGLB doesn't embed images

When running these two lines right after another
// save gltf + bin
exporter.SaveGLTFandBin(Path.Combine(wwwPath, sceneName), sceneName);
// save glb file directly
exporter.SaveGLB(Path.Combine(wwwPath, sceneName), sceneName);

I get very different output. Save gltf+bin produces gltf,bin and images with a total size of ~3MB; save glb stores, well, a single GLB file (as expected) which is only 30KB and doesn't work in any viewer.
Expected: I would expect the output of SaveGLB to be identical to what an external GLB packer produces when putting the files in, e.g. https://glb-packer.glitch.me/
Is there anything I need to configure to even get images to be stored inside the GLB?
(tested with both the latest release version and the latest master)

Could be due to #393 if you see the shader value null message in the console.

No, I already added the Resources folder manually. There's no error message logged at all, the export runs through without errors - just a tiny glb is exported.

Upon some further investigation I'd say this is a bug:
calling
// save gltf + bin
exporter.SaveGLTFandBin(Path.Combine(wwwPath, sceneName), sceneName);
// save glb file directly
exporter.SaveGLB(Path.Combine(wwwPath, sceneName), sceneName);

results in a tiny GLB (and no error message),
while ONLY calling
exporter.SaveGLB(Path.Combine(wwwPath, sceneName), sceneName); (and not exporting the GLTF before) results in a proper GLB file.

Ok. It sounds like something which could be narrowed down by stepping through with the debugger.

@soraryu or @andreasplesch , do either of you have time to investigate and possibly send a pull request with a fix?

Sorry, not currently.


Upgrade Rust to 1.59.0 in docker image

Closes #47
Checklist

[X] I have read the Contributor Guide
[X] I have read and agree to the Code of Conduct
[X] I have added a description of my changes and why I'd like them included in the section below

Description of Changes
Upgrade Rust to 1.59.0 in the base image of the Dockerfile to close #47
Related Issues
Resolves #47

Howdy -- neat project! Thanks for your work maintaining it

Closed in https://github.com/EmbarkStudios/cargo-deny-action/releases/tag/v1.2.13, you can now specify which cargo version you want to use. Thanks for the PR though!

Oh yep that's a way better approach. Good thinking!


Non-functional GnuPG Pinentry communication with GPGME

Describe the bug …

Open Lock
Open via the Burger menu "manage keys"
Click + button
Fill in test for name and<EMAIL_ADDRESS>for mail
Leave rest as is and click "Generate" Button
Fail

Ubuntu 24.04.1 LTS, GNOME 46, Wayland
Which version of Lock are you using?
1.0.1
Source
Flathub
Relevant log output
** (com.konstantintutsch.Lock:2): WARNING **: 22:27:10.852: Fehler beim Generieren eines neuen Schlüssels für Signierung: Fehler in der Pinentry

This error is probably related to either GPGME or GPG, not Lock.
Two questions:

Did you update Lock immediately before trying to generate a new keypair?
Could you try to reboot and generate a new keypair afterwards?

I updated the application and the error occurred. I then did the following:

Reboot, still the same
Uninstall Lock
Used Flatsweep to remove leftovers
Installed again via flatpak
Error still persists

Can you show me the contents of .gnupg/gpg.conf and ~/.gnupg/gpg-agent.conf?
For context on the error: A Pinentry is the password dialog of GnuPG. Your systems GPG Agent cannot find or initialize it.
It should be configured in those two configuration files. Here's an example of how they should look like:
gpg.conf
use-agent

gpg-agent.conf
pinentry-program /usr/bin/pinentry-gnome3

Both files do not exists on my machine. If I add a key via the commandline then it shows up in Lock but all operations fail. /usr/bin/pinentry-gnome3 does exist on my system.
I got:
$ gpg --version
gpg (GnuPG) 2.4.4
libgcrypt 1.10.3

Where is the password prompt displayed when you use GPG in the command line? (e. g. terminal, GUI prompt, …)
I've not been able to reproduce this bug so far

When I use gpg --gen-key then UI pops up to ask me for a password.
Output of flatpak info --show-permissions com.konstantintutsch.Lock:
[Context]
shared=ipc;
sockets=x11;wayland;fallback-x11;gpg-agent;
devices=dri;
filesystems=xdg-run/gvfsd;~/.gnupg:create;

[Session Bus Policy]
org.gtk.vfs.*=talk
org.gnome.keyring.SystemPrompter=talk

Okay. I'm now certain that this is not related to Lock. You might want to report this bug to the GnuPG project in their bug tracker.

Could you please try to run flatpak run --command=pinentry-gnome3 com.konstantintutsch.Lock?

Lock does not open when I run the command and the terminal just waits:
flatpak run --command=pinentry-gnome3 com.konstantintutsch.Lock
OK Pleased to meet you, process 2

I think I've been able to reproduce this on a Ubuntu VM now. Can you provide me with the log of the gpg-agent on your system so I can confirm this?
Create ~/.gnupg/gpg-agent.conf and add log-file <path> to it. Restart the agent with gpgconf --kill gpg-agent and try to generate a new keypair in Lock again.

Unfortunately there are no logs written when I do the following:

touch ~/.gnupg/gpg-agent.conf
add log-file ~/.gnupg/log.log to the new file
touch ~/.gnupg/log.log
run gpgconf --kill gpg-agent
Create key in Lock
Reboot
Create key in Lock

~/.gnupg/log.log remains empty.

Did you confirm that the GPG Agent is enabled and running?

gpg.conf
use-agent

I am not very familiar with GPG and don't understand what you mean. Sorry, I think I won't be able to debug this any further :confused:
Happy to test an update and see if it works :+1:


WARN Unable to load properties from '/usr/local/UniFi/data/system.properties'

Hi,
Ran the script on a new build on a jail on a FreeNAS 12.2 machine.
The service fails to start:
root@unifi:/usr/ports # service unifi.sh start
Starting UniFi controller.
root@unifi:/usr/ports # WARN Unable to load properties from '/usr/local/UniFi/data/system.properties' - /usr/local/UniFi/data/system.properties (No such file or directory)
Exception in thread "main" java.lang.NoClassDefFoundError: org/xerial/snappy/OSInfo
        at com.ubnt.service.system.S.<clinit>(Unknown Source)
        at com.ubnt.ace.Launcher.<clinit>(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.xerial.snappy.OSInfo
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        ... 2 more

I tried to resolve that issue with mkdir /usr/local/UniFi/data;touch /usr/local/UniFi/data/system.properties - and was faced with this:
root@unifi:/usr/local/UniFi/data # service unifi.sh start
Starting UniFi controller.
root@unifi:/usr/local/UniFi/data # Exception in thread "main" java.lang.NoClassDefFoundError: org/xerial/snappy/OSInfo
        at com.ubnt.service.system.S.<clinit>(Unknown Source)
        at com.ubnt.ace.Launcher.<clinit>(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.xerial.snappy.OSInfo
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        ... 2 more

Hi, I had similar issues, just follow Troubleshooting guide on main page. You have to uninstall java packages and reinstall UNIFI.

To expand on that comment a bit, I ran into this issue after installing UniFi on a Raspberry Pi. First it wouldn't even try to start and complain that it Cannot locate Java Home, which I fixed by installing the openjdk-8-jre-headless package. Then I ran into the issue documented here.
I couldn't find the Troubleshooting guide that the post above is referring to, but I did succeed by running apt-get install --reinstall unifi which seemed to generate the system.properties file correctly. After that, the Controller started up fine.

I had the same issue when installing 7.0.23 with mongodb42 and faced an http 403 error when opening the interface. Simply executing service unifi.sh start a second time fixed the issue for me

closing no updates


Improve mozilla observatory scoring

Should be an "A" but is a "D"
https://observatory.mozilla.org/analyze/keedrop.com
Test Scores

Test
Pass
Score
Reason

Content Security Policy

-20
Content Security Policy (CSP) implemented unsafely.This includes 'unsafe-inline' or data: inside script-src, overly broad sources such as https: inside object-src or script-src, or not restricting the sources for object-src or script-src.

Cookies

0
No cookies detected

Cross-origin Resource Sharing

0
Content is not visible via cross-origin resource sharing (CORS) files or headers

HTTP Public Key Pinning

0
HTTP Public Key Pinning (HPKP) header not implemented (optional)

HTTP Strict Transport Security

-20
HTTP Strict Transport Security (HSTS) header not implemented

Redirection

0
Initial redirection is to HTTPS on same host, final destination is HTTPS

Referrer Policy

0
Referrer-Policy header not implemented (optional)

Subresource Integrity

0
Subresource Integrity (SRI) not implemented, but all scripts are loaded from a similar origin

X-Content-Type-Options

-5
X-Content-Type-Options header not implemented

X-Frame-Options

-20
X-Frame-Options (XFO) header not implemented

X-XSS-Protection

-10
X-XSS-Protection header not implemented

Failed CSP

Test

Blocks execution of inline JavaScript by not allowing 'unsafe-inline' inside script-src

Blocks execution of plug-ins, using object-src restrictions

Blocks inline styles by not allowing 'unsafe-inline' inside style-src

Clickjacking protection, using frame-ancestors

Deny by default, using default-src 'none'

Restricts use of the  tag by using base-uri 'none', base-uri 'self', or specific origins

Restricts where  contents may be submitted by using form-action 'none', form-action 'self', or specific URIs

Uses CSP3's 'strict-dynamic' directive to allow dynamic script loading (optional)

A+ now


Clarify versions

source https://learn.microsoft.com/en-us/sharepointmigration/overview-of-the-sharepoint-migration-assessment-tool#prerequisites
closes https://github.com/MicrosoftDocs/OfficeDocs-SharePoint/issues/3577

@JoanneHendrickson
PR has been copyedited and is ready for final review, could you please check and merge? Thanks!

@JoanneHendrickson
PR has been copyedited and is ready for final review, could you please check and merge? Thanks!


Shape LFO parameter: NTS1 and minilogue xd

Describe the bug
NTS-1 and minilogue xd give different values for shape_lfo parameter in OSC_CYCLE.
To Reproduce
Build square osc in the osc/tests/square and install it to NTS-1 and minilogue xd.
Set LFO rate to slow ( < 1Hz), LFO target to pitch, and maximize intensity.
Hit any key and hear how the pitch changes. NTS-1's pitch never goes down under the key while minilogue xd goes.
Expected behavior
I think minilogue xd's behavior is more preferred.
Screenshots
The attached image shows how PWM changes with LFO. In both cases, the intensity is the max value.

@boochow At least on NTS-1, shape_lfo parameter of OSC_CYCLE only has a non-zeo value when LFO target is SHAPE. When LFO target is PITCH, the params->pitch itself is passed modulated.
You can clearly see both osc/tests/square.c have exactly the same source code for moth NTS-1 and Minilogue XD and shape_lfo does not affect pitch here.
I did not find a word about neither pitch LFO sensitivity nor pitch bend sensitivity in both NTS-1 and Minilogue XD manuals. MIDI implementation in those Korg products is... ugh... very ascetic :)

@dukesrg Yes, the same source, different results. That is the problem. I have been using NTS-1 and got a minilogue xd today and found this issue. I suppose it may not be an issue of the SDK but the wrong behavior of NTS-1.

@boochow to clearify: you're experiencing a different pitch LFO depth applied with the same pitch LFO depth value on Minilogue XD and NTS-1.
This is not about params->shape_lfo so but about different internal implementation in hardware.

The same settings for different hardware cause different results. I couldn't clarify where the problem actually is, but anyway, I had to write different codes for different hardware to get the same results.

@boochow Did the test, and
Did a test: NTS-1 have triangle wave in 0.0...1.0 q31 value range (there is an offset in the oscilloscope app, that is a positive-only triangle!)

This is for SHAPE LFO target, looks like there is a typo in the first post stating pith as a target.

Thank you for testing. However, it is not a typo. I saw both targeting pitch and targeting shape seemed to have the same problem: NTS-1 sends an OSC module LFO values from 0.0 to 1.0 while minilogue xd sends values from -1.0 to 1.0.
In case of shape_lfo parameter, it is easy to get the same results from NTS1 and minilogue xd by replacing
NTS-1: q31_to_f32(p->shape_lfo)
to
minilogue xd:  (q31_to_f32(p->shape_lfo) / 2 + 0.5).
The pitch problem is more serious because OSC_CYCLE() receives the LFO-modulated pitch, and it is difficult to know what the actual LFO value is.

@boochow Thanks, now it makes sense. Really looks like a bug in NTS-1 runtime.
Since there is no way to get the firmware version, I'd stick to correct Minilogue XD behaviour. Unless maintainers confirm this is an expacted behaviour for NTS-1. Let's hope there will be a bugfix.

@etienne-korg please comment on this https://github.com/korginc/logue-sdk/blob/alpha/wasm-builds/platform/ext/WAB/cpp/logue_wrapper.cpp#L96 - shape LFO supposed to be in [0...1] range  in OSC_CYCLE

NTS-1: q31_to_f32(p->shape_lfo)
to
minilogue xd:  (q31_to_f32(p->shape_lfo) / 2 + 0.5).

I found that the code above still has an issue. When the LFO intensity is zero, the shape_lfo value becomes zero for both NTS-1 and minilogue xd. However, the above code for minilogue xd returns 0.5 when the shape_lfo value is zero. To get the same result with NTS-1 on minilogue xd, we need the LFO intensity value.


Pasting from google docs/MS Word

Version
1.0.4
Test Environment
Chrome (latest), Mac OSX (latest)
Current Behavior
When copying from a google docs containing formatting, the pasted content into TUI-Editor contains a lot of unnecessary markup. This normally would not be an issue, but it seems to cause issues when applying opening/closing p and br tags.
This is an example of the outputted HTML

Owner: The owner of this thing

Update frequency: anotherformatted line

Goal: Capture some information about the thing.

Expected Behavior
The span tags seem harmless, but it seems like it's inserting br tags that are not self closing.

@michaelryancaputo  thanks for reporting it.
normally
 shouldn't be in WYSIWYG editor.  we keep a line as a
.
I guess somehow the
 leaked in.
could you give me an example of the google docs, so I can reproduce and track the problem?

@kyuwoo-choi Here's a link: https://docs.google.com/document/d/1vD6rdcVYqEH9HS3rgPHEkCpZzxlJ-kjiRSRqdHlHutE/edit?usp=sharing

@michaelryancaputo LOL. so fast.
I've tested given google docs and find no
 in WYSIWYG editor.
It might be because of your chrome extension.
Could you confirm?
btw. Thank you for your steady contributions 👍

It seems like it might also be a problem with microsoft word

@michaelryancaputo Sorry for late reply. We manage this issue in #401 so close it.


error: Type mismatch

error: Type mismatch
     ┌─ C:\coding\projects\realtime_chat\build\packages\birl\src\birl.gleam:1163:3
     │
1163 │   range
     │   ^^^^^

The type of this returned value doesn't match the return type
annotation of this function.

Expected type:

    iterator.Iterator(Time)

Found type:

    yielder.Yielder(Time)

Thanks


4 add chapter on naming things

First draft on #4, work on it Friday or next week

Cool! But checkout #5 where I've already started working on this.
Maybe you could

Integrate your changes with mine (or vice versa)
Review my draft in #5
Thanks!

I think we can close this in favor of #5, okay @justus-reihs?


How to?

So how to set up KCP+SS+UDP2RAW properly on server using this script and how to make it work on my windows client side? Someone explains me, please. Don't get it.

Sorry for the late reply! You will need to install shadowsocks/shadowsocks-libev first, then put kcptun-server-plugin in the path and run ss-server --plugin kcptun-server-plugin --plugin-opts "[plugin options here]" [additional shadowsocks arguments here]. This repository does not provide a quick way to set up the stack, but offers a SIP003 plugin which integrates KCPTUN and UDP2RAW with shadowsocks servers/clients that support plugins.


CAN Error: Check Connections (2022 TOYOTA RAV4 HYBRID)

Describe the bug
I have gone through the steps for fingerprinting my new car, and after modifying the values.py the display has gone from "Car Unrecognized: Dashcam Mode" to "CAN Error: Check Connections" after open pilot starts
What hardware does this issue affect?
comma two
Which car does this affect?
Toyota RAV4 Hybrid 2022
Provide a route where the issue occurs
69f9053e1c268efb|2022-03-03--14-31-20
openpilot version
Release version
Additional info
Dongle ID: [69f9053e1c268efb]. I think there was a similar issuesimilar issue just closed a few days ago. I have double checked the values in values.py but can't see anything immediately wrong.
I have used this device in a 2019 Prius for over a year with no issues.

The 2022 RAV4 is currently not an officially OpenPilot supported car. Toyota changed their radar and camera hardware from Denso to Continental for 2022 model year and OP is unable to read the new signals. See discussion here:
https://github.com/commaai/openpilot/discussions/23611
There's currently a workaround to get OpenPilot to steer but the gas/brakes will be handled by the factory ACC system.

Well that's unfortunate. Hopefully there is support for the Conti hardware soon.
In the linked discussion, is the workaround fingerprinting as CAR.CAMRYH? If so, are there any guides to fingerprinting as a different vehicle?

You can run my branch and see if it recognizes your ecu firmware. There are already a few 2022 users running this branch as a workaround.
https://github.com/alancyau/openpilot/commits/patch-2
When you get to the installer URL, use https://installer.comma.ai/alancyau/patch-2
If you still get car unrecognized, paste your carfw data and I'll add it to the branch.

That worked great, thanks!


Fix #230: Prevent WebView from stealing focus

Cancelled as it's not working as expected: the focus stays in the main window, but the focus is still taken away from other controls within same app (and no way to take it back).


abap2UI5 is broken since last update

Since the latest changes I get this error

ok merged, some fixes and renamed. now everything should work again with new naming etc.

work again. closing.


Big list of usability issues / possible enhancements

This issue exists to capture API subtleties that hurt usability. In order to avoid flooding our list of issues and reduce the friction to reporting them, I'm capturing these (at least initially) here. Empirically, the reduced friction in particular seems to be necessary for me personally to document them. I anticipate the ones we decide to fix will gradually get moved to their own issues.
So far I have:

[ ] Dataset creation depends on dataloader, which in turn depends on dataset. This is a product of some datasets needing a custom collate function and/or split_fn.
[ ] Algorithms need state already created, which needs dataloader already created, which makes messing with the dataloader difficult (except in a few targeted ways, like adding another data augmentation)
[ ] No clean way to create a custom param_group for the optimizer. E.g., for mixture of experts, I want those params to use a lower learning rate.
[ ] Initialization plumbing is coupled to model and AFAICT hard to change algorithmically. See, e.g., composer/models/resnets/ImageNet_ResNet::__init__. Haven't really tried to build it yet, but example use case would be having an algorithm that causes the batchnorms, or a targetted subset thereof, to be initialized differently.
[x] Hparam subsystem is tightly coupled to core logic, making it difficult to integrate with user's existing hparam management (#269)
[ ] Adding a new {dataset, model} takes changes in a number of places / lack of documentation around using a custom dataset without changing composer
[ ] All-or-nothing choice between using our trainer or manually adding each algorithm. No graceful degradation for, e.g., surgery methods that could in principle work with any trainer.
[x] Data augmentation algorithms have different functional/standalone APIs. And it's pretty ugly to add them into an existing dataset or dataloader (e.g., trainloader.dataset.transform.transforms.append(functools.partial(cf.colout, p_row=.1, p_col=.1))). (moved to #343)
[ ] Can't get mixup to run by adding to an existing transforms.Compose at all.
[x] Channels_last has no standalone/functional API (moved to #350)
[ ] Squeeze excite's standalone API prints the network.
[ ] There's no way to call batch_colout because this function isn't imported in composer/algorithm/colout/__init__.py and the function colout aliases composer/algorithm/colout/colout.py
[ ] #529
[x] Augmix functional needs a complete docstring
[ ] Augmix functional API isn't in its method card
[ ] User has to separately sample a Beta random variable using a helper function for mixup and cutmix functional API. Should probably allow just passing in the beta's parameter (if desired) to the main augmentation function.
[x] Cutout has no functional API tests (Fixed by #524)
[ ] #527
[ ] #526
[ ] SAM and SWA algorithm names are all caps and get syntax highlighted like a constant in editors
[ ] Scale schedule has no tests (see #434)
[ ] #528
[ ] #525
[ ] #530
[ ] Can't run stochastic depth after blurpool because AttributeError: 'BlurConv2d' object has no attribute 'groups'.
[ ] Inconsistent whether apply and match are documented for algorithms.
[ ] Event, Logger, and State don't seem to link properly when referenced in parens after arg names in Algorithm apply and match.
[ ] Inconsistent inclusion of examples before vs after {args, returns, raises} in algorithms directory.
[ ] Functional API tutorial notebook should (probably?) use transforms for data augmentations, instead of the functional API calls. Or maybe not use augmentations at all?
[ ] Augmix takes in a mutable list for its augmentation set in most cases, but a string in its Transform version. Should always accept a string or Iterable of Callables, and always default to a string.
[ ] Factorize module, algo, functional defaults don't all match.
[ ] One SE module doesn't have the same defaults as everything else
[X] Cutout should only support fractional length like cutmix
[ ] We need better input checking + error raising throughout the whole algorithms directory.

*Other augmentations also lack transform wrappers, but can't easily get them since they also rely on seeing the labels.
Planning to check off these off as we either move them to separate issues or decide to wontfix.

Moving issue internally to https://www.notion.so/List-of-Usability-Issues-and-Possible-Enhancements-07aef774749c4b2c99aefec06fe685f2


defective out.sam fomat?

Successfully installed mummer-4.0.0rc1 on a Scientific Linux 7.9 box in conda environment. Then run alignment hg38 against gorGor6 ref assembly
$ nucmer -t 16 --sam-short=./Gor6-hg38_short.sam gorGor6.fa hg38.fa
after ~8 hours using ~ 59 GB memory got 761.8 MB sam file. However, further actions with samtools 1.20 failed:
$ samtools view -bT gorGor6.fa Gor6-hg38_short.sam
[main_samview] fail to read the header from "Gor6-hg38_short.sam"
$ samtools view -H Gor6-hg38_short.sam
[main_samview] fail to read the header from "Gor6-hg38_short.sam"
What could be the problem?

It appeared that this problem is a long standing issue:
This broken output is BTW a long-standing mummer bug: see [mummer4/mummer#24](https://github.com/mummer4/mummer/issues/24) and https://github.com/mummer4/mummer/blob/master/src/umd/nucmer_main.cc#L107-L108

Many thanks to John Marshall for help with finding compliance issue of header formatting in out.sam produced by nucmer, this appeared to be an easy fix:
    in code
mummer-4.0.0rc1/src/umd/nucmer_main.cc
    change
106    if(args.sam_short_given || args.sam_long_given) {
107      os << "@HD VN1.0 SO:unsorted\n"
108         << "@PG ID:nucmer PN:nucmer VN:4.0 CL:\"" << cmdline << "\"\n";
109    } else {
     to
106    if(args.sam_short_given || args.sam_long_given) {
107    os << "@HD\tVN:1.0\tSO:unsorted\n"
108        << "@PG\tID:nucmer\tPN:nucmer\tVN:4.0\tCL:" << cmdline << "\n";
109    } else {

then recompile as recommended. Now out.sam is compatible with all samtool versions.
$ nucmer --maxmatch --threads=4 --sam-short=./Sgor-hum.sam gor-mt.fa rCRS.fa
$ samtools view -H Sgor-hum.sam
@HD	VN:1.0	SO:unsorted
@PG	ID:nucmer	PN:nucmer	VN:4.0	CL:"nucmer --maxmatch --threads=4 --sam-short=./Sgor-hum.sam gor-mt.fa rCRS.fa"


Fix getting the object properties

My cloud function wasn't working and had me pull my hair for a while before I realized that the example code is faulty.
restDoc.data('numRatings') should be restDoc.data().numRatings

I signed it!

Thanks @petterw03 !  That's a good catch.


chore: move to 0.11.0-SNAPSHOT

Review and merge this PR to move development branch to a new SNAPSHOT version.
Afterward, delete the branch that this PR is based on.
(Typically a button appears on this page once the PR is merged.)

Testing PR, closing.


Flux Install

Document the old method of FluxCD installation, so that it can be adapted to the modern version using the flux bootstrap command.
task cluster:install

kubectl apply --kustomize on ./kubernetes/bootstrap

Contents of .kubernetes/bootstrap:
kustomization.yaml
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
  - github.com/fluxcd/flux2/manifests/install?ref=v2.2.3
patches:
  # Remove the network policies that do not work with k3s
  - patch: |-
      $patch: delete
      apiVersion: networking.k8s.io/v1
      kind: NetworkPolicy
      metadata:
        name: not-used
    target:
      group: networking.k8s.io
      version: v1
      kind: NetworkPolicy

The referenced resources from the v.2.2.3 Tag in the fluxcd/flux2 repository at ./manifests/install/:
kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: flux-system
resources:
  - namespace.yaml
  - ../bases/source-controller
  - ../bases/kustomize-controller
  - ../bases/notification-controller
  - ../bases/helm-controller
  - ../bases/image-reflector-controller
  - ../bases/image-automation-controller
  - ../rbac
  - ../policies
transformers:
  - labels.yaml
images:
  - name: fluxcd/source-controller
    newName: ghcr.io/fluxcd/source-controller
  - name: fluxcd/kustomize-controller
    newName: ghcr.io/fluxcd/kustomize-controller
  - name: fluxcd/helm-controller
    newName: ghcr.io/fluxcd/helm-controller
  - name: fluxcd/notification-controller
    newName: ghcr.io/fluxcd/notification-controller
  - name: fluxcd/image-reflector-controller
    newName: ghcr.io/fluxcd/image-reflector-controller
  - name: fluxcd/image-automation-controller
    newName: ghcr.io/fluxcd/image-automation-controller

labels.yaml
apiVersion: builtin
kind: LabelTransformer
metadata:
  name: labels
labels:
  app.kubernetes.io/part-of: flux
  app.kubernetes.io/instance: flux-system
fieldSpecs:
  - path: metadata/labels
    create: true

namespace.yaml
apiVersion: v1
kind: Namespace
metadata:
  name: flux-system
  labels:
    pod-security.kubernetes.io/warn: restricted
    pod-security.kubernetes.io/warn-version: latest

cat {{.SOPS_AGE_KEY_FILE}} | kubectl -n flux-system create secret generic sops-age --from-file=age.agekey=/dev/stdin

sops --decrypt {{.KUBERNETES_DIR}}/flux/vars/cluster-secrets.sops.yaml | kubectl apply -f -

kubectl apply -f {{.KUBERNETES_DIR}}/flux/vars/cluster-settings.yaml

kubectl apply --kustomize {{.KUBERNETES_DIR}}/flux/config
Contents of ./kubernetes/flux/config/:

kustomization.yaml
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
  - ./flux.yaml
  - ./cluster.yaml

flux.yaml
---
apiVersion: source.toolkit.fluxcd.io/v1beta2
kind: OCIRepository
metadata:
  name: flux-manifests
  namespace: flux-system
spec:
  interval: 10m
  url: oci://ghcr.io/fluxcd/flux-manifests
  ref:
    tag: v2.2.3
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
  name: flux
  namespace: flux-system
spec:
  interval: 10m
  path: ./
  prune: true
  wait: true
  sourceRef:
    kind: OCIRepository
    name: flux-manifests
  patches:
    - patch: |
        $patch: delete
        apiVersion: networking.k8s.io/v1
        kind: NetworkPolicy
        metadata:
          name: not-used
      target:
        group: networking.k8s.io
        version: v1
        kind: NetworkPolicy
    - patch: |
        - op: add
          path: /spec/template/spec/containers/0/args/-
          value: --concurrent=8
        - op: add
          path: /spec/template/spec/containers/0/args/-
          value: --kube-api-qps=500
        - op: add
          path: /spec/template/spec/containers/0/args/-
          value: --kube-api-burst=1000
        - op: add
          path: /spec/template/spec/containers/0/args/-
          value: --requeue-dependency=5s
      target:
        kind: Deployment
        name: "(kustomize-controller|helm-controller|source-controller)"

cluster.yaml
---
apiVersion: source.toolkit.fluxcd.io/v1beta2
kind: GitRepository
metadata:
  name: home-kubernetes
  namespace: flux-system
spec:
  interval: 30m
  ref:
    branch: "main"
  url: "https://github.com/aflyingcougar/homelab"
  ignore: |
    # exclude all
    /*
    # include kubernetes directory
    !/kubernetes
---
apiVersion: kustomize.toolkit.fluxcd.io/v1beta2
kind: Kustomization
metadata:
  name: cluster
  namespace: flux-system
spec:
  interval: 30m
  path: ./kubernetes/flux
  prune: true
  wait: false
  sourceRef:
    kind: GitRepository
    name: home-kubernetes
  decryption:
    provider: sops
    secretRef:
      name: sops-age
  postBuild:
    substituteFrom:
      - kind: ConfigMap
        name: cluster-settings
      - kind: Secret
        name: cluster-secrets

Item 1. is accomplished by running the flux bootstrap command, which is being added under task cluster:install. The patch isn't necessary, since we're no longer on k3s.
Item 2. will be brought in as-is into the cluster:install task.
Items 3. and 4. will be brought into the cluster:install task, as well. Their substitution which was previously handled by /kubernetes/flux/config/cluster.yaml is being added to a patch to the flux kustomation at /kubernetes/clusters/staging/flux-system/kustomization.yaml.
TODO: Figure out where to put the cluster-secrets.sops.yaml and cluster-settings.yaml.

Items 3. and 4. will be brought into the cluster:install task, as well. Their substitution which was previously handled by /kubernetes/flux/config/cluster.yaml is being added to a patch to the flux kustomation at /kubernetes/clusters/staging/flux-system/kustomization.yaml.
TODO: Figure out where to put the cluster-secrets.sops.yaml and cluster-settings.yaml.

Moving the kubernetes/flux/vars directory (contains cluster-secrets.sops.yaml, cluster-settings.yaml, and kustomization.yaml) to {{.KUBERNETES_DIR}}/clusters/{{.BOOTSTRAP_ENV}}/vars

Item 5. is also accomplished by running the flux bootstrap command. The customization that was done do the specs for the cluster Kustomization and GitRepository are captured by patches in the file /kubernetes/clusters/staging/flux-system/kustomization.yaml


Views and Table Functions in Information_schema

Is your feature request related to a problem? Please describe.
Views and Table Function in schema Information_Schema is not currently available in the existing plugin.
Describe the solution you'd like
Create tables for Views and Table Function in schema Information_Schema.
Describe alternatives you've considered
I have tried Airbyte, but they also don't have this feature, the other option is to create a python API to pull the data. But it is not ideal.
Additional context
I really like the FDW feature of Postgres and Steampipe has found a perfect market for that use case.

I am looking to access the Views and Table Functions listed here https://docs.snowflake.com/en/sql-reference/info-schema.html#list-of-views.

I have locally built the plugin for the Table Function - Information_schema.WAREHOUSE_METERING_HISTORY. Attaching the code for it. I also like to build the code for another 14 Table functions -
Information_schema	WAREHOUSE_LOAD_HISTORY
Information_schema	STAGE_STORAGE_USAGE_HISTORY
Information_schema	SERVERLESS_TASK_HISTORY
Information_schema	SEARCH_OPTIMIZATION_HISTORY
Information_schema	REPLICATION_GROUP_USAGE_HISTORY
Information_schema	QUERY_HISTORY
Information_schema	QUERY_ACCELERATION_HISTORY
Information_schema	PIPE_USAGE_HISTORY
Information_schema	MATERIALIZED_VIEW_REFRESH_HISTORY
Information_schema	EXTERNAL_FUNCTIONS_HISTORY
Information_schema	DATABASE_STORAGE_USAGE_HISTORY
Information_schema	DATA_TRANSFER_HISTORY
Information_schema	AUTOMATIC_CLUSTERING_HISTORY
Information_schema	AUTO_REFRESH_REGISTRATION_HISTORY
table_snowflake_warehouse_metering_history.txt

Hey @vwake7, my apologies for the lack of communication regarding this issue.
Based on the above code, the WarehouseMeteringHistory API is paginated and better suited as a separate table. We suggest creating separate pull requests (PRs) for each table to move forward with the necessary changes. Please don't hesitate to ask if you need any help during this process.


Is this language specific?

Is there  any thing special thing about English or this can be trained and used for languages like Japanese, Arabic, Russian, Hebrew?

There is nothing language-specific in the code and you can try non-english words on the website but they tend to be stereotypical english usage of foreign words: https://www.thisworddoesnotexist.com/w/我不知道/eyJ3IjogIlx1NjIxMVx1NGUwZFx1NzdlNVx1OTA1MyIsICJkIjogImFuIGluc2NyaXB0aW9uIHRoYXQgcmVhZHMgdGhlIG5hbWUgb2YgdGhlIEVtcGVyb3IgSnViZWkuIiwgInAiOiAibm91biIsICJlIjogIlx1NjIxMVx1NGUwZFx1NzdlNVx1OTA1MyBcdTRlYmFcdTkwMDMifQ==._rWh_i9KElL0ww5HQJHyYYUcPi5pU64LxcfLbXTDiCo=
If you want to train your own model the only problem is that the base model (GPT-2) is primarily trained with English. If you replace that with something suited for other language then you would be good!


fixed missing pyyaml dependency in setup_dev

Small fix to get pyyaml into venv

Unfortunately the situation isn't as simple as you might like :-(.  We need a specific version of pyyaml for some of the tools, otherwise it formats things differently.  But, pyyaml is also part of the base python distribution, so -- it actually comes along with python without any additional install.  Except when it doesn't or is the wrong version.
You might try putting the addition up around line 61 of that file, where it only executes when it's NOT running on travis.  The setup doesn't use venv on travis for reasons I can't remember (I probably should have put a comment in as to why).

Closing as addressed in #117


nixos/doc/md-to-db.sh: handle Docbook inclues in CommonMark

You can do includes like this in markdown to include docbook files
```{=docbook}
<xi:include href="rl-2111.section.xml" />
```

Motivation for this change
The NixOS manual has multiple levels of Docbook includes, so we need some want to temporarily represent this in CommonMark while we transition.
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

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

[x] Fits CONTRIBUTING.md.

I tested converting nixos/doc/manual/configuration/profiles.xml and this is the result https://github.com/bobby285271/nixpkgs/commit/4c38d74dad1ccf8def5aaace413a683f7a901f51, I got something like:
<xi:include href=<quote>all-hardware.section.xml</quote> />

Not sure if I am doing something wrong.

Not sure if I am doing something wrong.

@bobby285271 Sorry, it is confusing to embed markdown in markdown. You need to use it like this:
```{=docbook}
<xi:include href="rl-2111.section.xml" />
```

The build result (and the rendered content) this time looks good (https://github.com/bobby285271/nixpkgs/commit/450886eac02f42f12b42058a82d4fc8dc3e10e08).

Related: #137082.


Multiple scopes for Dapr Component in Container Environment can't be set using Bicep

Bicep version
0.22.6
Describe the bug
The az cli gives the following error:
"The JSON value could not be converted to System.String.
To Reproduce
Use the following in a bicep file:
param containerAppsName string
param storageAccountName string
param storagekey string

param containers object[]

resource managedEnvironment 'Microsoft.App/managedEnvironments@2023-05-01' existing = {
  name: containerAppsName
}

resource storageBinding 'Microsoft.App/managedEnvironments/daprComponents@2023-05-01' = [for container in containers:  {
  name: container.daprComponentName
  parent: managedEnvironment
  properties: {
    componentType: 'bindings.azure.blobstorage'
    metadata: [
      {
        name: 'storageAccount'
        value: storageAccountName
      }
      {
        name: 'container'
        value: container.containerName
      }
      {
        name: 'decodeBase64'
        value: 'false'
      }
      {
        name: 'direction'
        value: 'input'
      }
      {
        name: 'publicAccessLevel'
        value: 'none'
      }
      {
        name: 'storageAccessKey'
        secretRef: 'storagekey'
      }
    ]
    scopes: [
      container.scopes
    ]
    secrets: [
      {
        name: 'storagekey'
        value: storagekey
      }
    ]
    version: 'v1'
  }
}
]

Use the following parameters.json:
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "<IP_ADDRESS>",
  "parameters": {
    "setupNum": {
      "value": "006"
    },
    "containers":
    {
        "value":
        [
            {
                "containerName":"containera",
                "daprComponentName":"bindinga",
                "scopes": ["appa", "appb"]
            },
            {
                "containerName":"containerb",
                "daprComponentName":"bindingb",
                "scopes": ["appa", "appc"]
            }
        ]
    }
  }
}

Additional context
Add any other context about the problem here.
Hardwiring more than one value in the component does work but setting from array of strings in bicep or json file does not work

Can you share the full error response? From the error message, it is not clear if the issue is coming from the App RP or from the Template Deployments service.

{"status":"Failed","error":{"code":"DeploymentFailed","target":"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/rg-xxxxxxxx/providers/Microsoft.Resources/deployments/pay-demo-deployment","message":"At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/arm-deployment-operations for usage details.","details":[{"code":"ResourceDeploymentFailure","target":"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/rg-xxxxxxxx/providers/Microsoft.Resources/deployments/storageContainerBindings","message":"The resource write operation failed to complete successfully, because it reached terminal provisioning state 'Failed'.","details":[{"code":"DeploymentFailed","target":"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/rg-xxxxxxxx/providers/Microsoft.Resources/deployments/storageContainerBindings","message":"At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/arm-deployment-operations for usage details.","details":[{"code":"BadRequest","target":"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/rg-xxxxxxxx/providers/Microsoft.Resources/deployments/storageContainerBindings","message":"{\r\n  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1\",\r\n  "title": "One or more validation errors occurred.",\r\n  "status": 400,\r\n  "traceId": "00-21d36e271a7cd4767acb217dd08ae44f-3e9c02ec295d032e-01",\r\n  "errors": {\r\n    "$.properties.scopes[0]": [\r\n      "The JSON value could not be converted to System.String. Path: $.properties.scopes[0] | LineNumber: 0 | BytePositionInLine: 360."\r\n    ]\r\n  }\r\n}"},{"code":"BadRequest","target":"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/rg-xxxxxxxx/providers/Microsoft.Resources/deployments/storageContainerBindings","message":"{\r\n  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1\",\r\n  "title": "One or more validation errors occurred.",\r\n  "status": 400,\r\n  "traceId": "00-21d36e271a7cd4767acb217dd08ae44f-79d9613e22399ccf-01",\r\n  "errors": {\r\n    "$.properties.scopes[0]": [\r\n      "The JSON value could not be converted to System.String. Path: $.properties.scopes[0] | LineNumber: 0 | BytePositionInLine: 358."\r\n    ]\r\n  }\r\n}"},{"code":"BadRequest","target":"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/rg-xxxxxxxx/providers/Microsoft.Resources/deployments/storageContainerBindings","message":"{\r\n  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1\",\r\n  "title": "One or more validation errors occurred.",\r\n  "status": 400,\r\n  "traceId": "00-21d36e271a7cd4767acb217dd08ae44f-342b788af58727ac-01",\r\n  "errors": {\r\n    "$.properties.scopes[0]": [\r\n      "The JSON value could not be converted to System.String. Path: $.properties.scopes[0] | LineNumber: 0 | BytePositionInLine: 354."\r\n    ]\r\n  }\r\n}"}]}]}]}}

Hope the above helps

Sorry I closed this accidentally.

Should
scopes: [
  container.scopes
]

Instead be:
scopes: container.scopes

The error from the RP suggests to me that you're passing a non-string-value as the first entry in the array.

A minor refactoring suggestion would be to use:
type containerType {
  scopes: string[]
  containerName: string
  daprComponentName: string
}

param containers containerType[]

Instead of:
param containers object[]

That way I think the editor could have probably caught the problem instead of it being caught when deploying.


When NotifyUpdateApplied is received, evict other sessions to that node

Receipt of NotifyUpdateApplied indicates that the other side has applied an OTA update, and presumably rebooted.
This seems like a signal that we should evict all other sessions (as in, except the one we get the command on) to the relevant node, since the chance that it preserved sessions across OTA is pretty slim.
@mrjerryjohns @jtung-apple thoughts?

Yes, that's a good thing to do. While the balanced LRU scheme will in most cases, prioritize reaping that old session, it's possible that it may also reap an older session to another node which in fact, might still be valid and active, causing possible delays interacting with that perfectly functioning node.

I'm torn about doing this in the OTA provider cluster, since it is a policy decision somewhat. Perhaps it should be an opt-out, through some kind of define?

While the balanced LRU scheme will in most cases, prioritize reaping that old session

Right, that's part of it, but the other part is that this lets us detect subscription drop faster in the OTA restart case...

Perhaps it should be an opt-out, through some kind of define?

Yes, we can certainly do that, or add a way for the OTA delegate to opt out (a virtual method that it can override, etc).  Thoughts on which of those would be better?

I'd definitely prefer the delegate, makes this policy decision be a more flexible runtime choice.


Add version: Microsoft.AppInstaller version 1.6.3482

[ ] Have you signed the Contributor License Agreement?
[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] This PR only modifies one (1) manifest
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.5 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Since these changes will require modifications to the path, I've opened a new PR to fix this one:

#131164

@mdanish-kh I approved your other PR. Would you mind removing the older versions?

@mdanish-kh I approved your other PR. Would you mind removing the older versions?

https://github.com/microsoft/winget-pkgs/pull/131164#issuecomment-1863197641


Question: history.back()

Is there a recommended way for doing history.back() with flow-router?
Maybe also a recommended way for  clearing the history...

Maybe you could keep track of the last N paths by pushing the most recent path string into a global array called pathHistory via global middleware and then do something similar to
    var length = pathHistory.length;
        FlowRouter.redirect(pathHistory[length-(n+1)])
}

clearHistory = function(){
  pathHistory = [];
}```

goBack(0) doesn't go back. goBack(1) goes back 1 path, ...
see https://github.com/meteorhacks/flow-router/issues/89

Thanks for your feedback, I hope the next major release will have an out-of-the-box solution for this :)

The way I see it is that flow router is incredibly minimal and leaves that
functionality up to us to implement in whichever way we want, or not at all
if we don't need it. Flow router is supposed to be like that. If im not
mistaken, that was part of it's design.
On May 1, 2015 5:34 AM, "boustanihani"<EMAIL_ADDRESS>wrote:

Thanks for your feedback, I hope the next major release will have an
out-of-the-box solution for this :)
—
Reply to this email directly or view it on GitHub
https://github.com/meteorhacks/flow-router/issues/94#issuecomment-98085421
.

I like the minimal design, but going back() is IMO basic routing functionality.

history.back() works pretty well with flow router. I don't know there is a browser API to clear the history.

I'm closing this now. If you are looking for something else. Let's discuss.

@arunoda how would you go back to the previous route but ignoring the same route if it has query params.
Example :
route 1 : https://example.com/page1
route 2 : https://example.com/page2
route 3 : https://example.com/page2?tab=1
route 4 : https://example.com/page2?tab=2
Now i want to go back to route 1 because it is the only page with a different path

There is no built in functionality in FlowRouter for this. May be check this is what you need.
See: https://github.com/kadirahq/flow-router#flowrouterwithreplacestatefn

var route = FlowRouter.current();
if(backRoute.oldRoute){
console.log('back', route.oldRoute.name);
FlowRouter.go(route.oldRoute.name);
}else{
FlowRouter.go('home');
}
this works pretty well for me so far...


K8SPXC-485: Use log collector

Test name
Status

Test name
Status

upgrade-haproxy
passed

storage
passed

haproxy
passed

recreate
passed

big-data
passed

scaling
passed

init-deploy
passed

self-healing
passed

scaling-proxysql
passed

restore-to-encrypted-cluster
failed

security-context
failed

upgrade-proxysql
passed

limits
passed

monitoring-2-0
passed

demand-backup
failed

smart-update
passed

affinity
passed

self-healing-advanced
passed

one-pod
failed

auto-tuning
passed

scheduled-backup
failed

proxysql-sidecar-res-limits
passed

operator-self-healing
passed

users
passed

upgrade-consistency
passed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

demand-backup-encrypted-with-tls
failed

Test name
Status

big-data
passed

storage
passed

self-healing
passed

self-healing-advanced
passed

operator-self-healing
passed

scaling
passed

scaling-proxysql
passed

upgrade-haproxy
passed

security-context
failed

recreate
passed

restore-to-encrypted-cluster
failed

haproxy
passed

init-deploy
passed

limits
passed

monitoring-2-0
passed

affinity
passed

one-pod
failed

upgrade-proxysql
passed

smart-update
passed

upgrade-consistency
passed

auto-tuning
passed

proxysql-sidecar-res-limits
passed

users
passed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

demand-backup
failed

scheduled-backup
failed

demand-backup-encrypted-with-tls
failed

Test name
Status

upgrade-haproxy
passed

scaling
passed

scaling-proxysql
passed

security-context
failed

recreate
passed

restore-to-encrypted-cluster
failed

storage
passed

self-healing
passed

self-healing-advanced
passed

operator-self-healing
passed

haproxy
passed

init-deploy
passed

limits
passed

monitoring-2-0
passed

affinity
passed

one-pod
passed

big-data
passed

upgrade-proxysql
passed

auto-tuning
passed

proxysql-sidecar-res-limits
passed

users
passed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

smart-update
passed

upgrade-consistency
passed

demand-backup
failed

scheduled-backup
failed

demand-backup-encrypted-with-tls
failed

Test name
Status

storage
passed

self-healing
passed

big-data
passed

self-healing-advanced
passed

operator-self-healing
passed

upgrade-haproxy
passed

scaling
passed

scaling-proxysql
passed

recreate
passed

security-context
failed

restore-to-encrypted-cluster
failed

haproxy
passed

init-deploy
passed

limits
passed

monitoring-2-0
passed

affinity
passed

one-pod
passed

auto-tuning
passed

proxysql-sidecar-res-limits
passed

users
passed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

upgrade-proxysql
passed

smart-update
passed

upgrade-consistency
passed

demand-backup
failed

scheduled-backup
failed

demand-backup-encrypted-with-tls
failed

Test name
Status

scaling
passed

scaling-proxysql
passed

security-context
failed

big-data
passed

haproxy
passed

init-deploy
passed

storage
passed

recreate
passed

limits
passed

self-healing
passed

restore-to-encrypted-cluster
failed

monitoring-2-0
passed

self-healing-advanced
passed

affinity
passed

operator-self-healing
passed

one-pod
passed

auto-tuning
passed

proxysql-sidecar-res-limits
passed

users
passed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

upgrade-haproxy
passed

upgrade-proxysql
passed

smart-update
passed

upgrade-consistency
passed

demand-backup
failed

scheduled-backup
failed

demand-backup-encrypted-with-tls
failed

Test name
Status

Test name
Status

PXC operator docker - perconalab/percona-xtradb-cluster-operator:PR-693-025b5683

Test name
Status

haproxy
passed

upgrade-haproxy
passed

recreate
passed

storage
passed

big-data
passed

scaling
passed

init-deploy
passed

self-healing
passed

scaling-proxysql
passed

restore-to-encrypted-cluster
passed

upgrade-proxysql
passed

limits
passed

security-context
passed

self-healing-advanced
passed

monitoring-2-0
passed

demand-backup
passed

operator-self-healing
passed

smart-update
passed

affinity
passed

one-pod
passed

auto-tuning
passed

proxysql-sidecar-res-limits
passed

users
passed

scheduled-backup
passed

upgrade-consistency
passed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

demand-backup-encrypted-with-tls
passed


update binder links

these are really outdated. now that we don't depend on octave, we can use the default binder settings to just build the dependency set from requirements.txt

alright... fixed. now works.


Poor ux with search key

Describe the bug
Now island.js supports to type command + k (or ctrl + k) to rouse the search component. However, many browsers also take this as their hot key.  And also because search component use throttle logic here, these lead to a poor experience that if user type ctrl + k very quickly, search key will not work, browsers take over it instead,
Hence, can we reduce the throttle time or just remove throttle?
Reproduction
See the official site of island.js
Expected behavior
Type ctrl + k can like immediately rouse the search component
System Info
System:
    OS: Linux 5.19 Arch Linux
    CPU: (8) x64 Intel(R) Core(TM) i5-1035G1 CPU @ 1.00GHz
    Memory: 2.81 GB / 15.40 GB
    Container: Yes
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 18.9.0 - /usr/bin/node
    Yarn: 1.22.19 - /usr/bin/yarn
    npm: 8.19.2 - /usr/bin/npm
  Browsers:
    Firefox: 104.0.2
  npmPackages:
    islandjs: workspace:* => 0.6.0

Additional context
No response
Validations

[X] Read the docs
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.

Thanks for your advice and i think it's neccessary to optimize the ux of search component.

The throttle logic could be removed~


New function instance_registered_with_elb to get ELBs of an instance

Given an instance id, find all the ELBs the instance is a member of

Thanks Fazle.
re: ssh
Check out this commit. https://github.com/realestate-com-au/bash-my-aws/commit/baad3ab9edd5d3cda23a70c287b5be85d6d9aa34
I have gone back to using root as default user but you can fix it for your use case with:
export AWS_DEFAULT_USER=$USER


Pack struct registers_intel_x64_t

This is required for reliable access via assembly. We get lucky because the compiler is obviously going to align 64-bit members of a struct with nothing else in it to 64 bits on a 64 bit machine, but it's definitely not required to.
Signed-off-by: Chris Pavlina<EMAIL_ADDRESS>

LGTM


Use golang 1.16 embed instead of our own

Embedded files are always relative to the package embedding them, and
can't be symlinks, so we need to move config and deploy.
Signed-off-by: Stephen Kitt<EMAIL_ADDRESS>

Cool

bump

reopen


TAI clock

Windows 10 since october 2018 supports leap seconds.
The FILETIME object will now include leap-seconds from this point forward and thus keeps in sync with TAI with a fixed number of seconds offset.
TAI is 37 seconds ahead of windows 10 time.
Add a hires_tai_clock and change the hires_utc_clock to get the correct UTC time.

Okay, so C++20 added tai_clock and utc_clock.
Interestingly utc_clock counts the number of seconds since 1970, including leapseconds. While system_clock counts the number of second since 1970 excluding leapseconds (unix clock). So I should change my implementation to be called hires_utc_clock and hires_system_clock. This is still needed because the C++20 standard does not give guarantees to the resolution of either clocks.
The c++20 tai_clock is like the utc_clock with a fixed offset to a very early date, which also means that tai_clock cannot hold a high resolution time in a int64_t anyway.


iOS build issue Xcode 10

I cloned the cordova-plugin-firebasex-test repository, tried to build it in my environment (Mac OS 10, Xcode 10.3) but iGet the same error as in issue #32
I tried all the steps: edited build settings and build phases, tried pod install, pod repo update, but I'm still stuck on this error message

Any suggestions? Thanks

It definitely looks like a problem with Cocoapods.
did you open the .xcworkspace rather that .xcodeproj?

I opened the .xcworkspace

The setup of Cocoapods in your environment is the issue.
Try cloning the Cocoapods example and building its example Xcode project to validate/diagnose your Cocoapods setup.

At last I fixed my issue by adding $(inherited) to Header Search Paths and removin Lipods*.a  in link binary with library. I was missing the correct settings in Xcode. Now I am able to build... Should I add initialization code in main AppDelegate class as suggested in Firebase docs?
I'm a newbie, thank you if you can help me :-)

Should I add initialization code in main AppDelegate class as suggested in Firebase docs?

This plugin handles the AppDelegate methods for you.
The best place to start is to build and run the test project as a working reference. Once you've got push notifications working correctly with that, you can use it as a reference for your own apps.

(Closing as original issue is resolved)


Trying to use bean method call #class:com.mongodb.client.MongoClients#create("mongodb://foo") throws ClassNotFoundException

To create a custom mongodb connection using MongoClient in a kamelet throws a ClassNotFoundException
The MongoClient is created like:
MongoClient mongoClient = MongoClients.create("mongodb://myuser:mypasswd@<IP_ADDRESS>:27017");

Setting the bean in a kamelet
  flow:
    beans:
       - name: mongoDBConnection
         type: '#class:com.mongodb.client.MongoClients#create("mongodb://myuser:mypasswd@<IP_ADDRESS>:27017")'

Also tried with #type in place of #class, but same error occurs.
Causes
2021-06-24 17:36:36,231 ERROR [org.apa.cam.qua.mai.CamelMainRuntime] (main) Failed to start application: org.apache.camel.RuntimeCamelException: org.apache.camel.VetoCamelContextStartException: Failure creating route from template: mongodb-sink
        at org.apache.camel.RuntimeCamelException.wrapRuntimeException(RuntimeCamelException.java:66)
        at org.apache.camel.support.service.BaseService.doFail(BaseService.java:413)
        at org.apache.camel.impl.engine.AbstractCamelContext.doFail(AbstractCamelContext.java:3349)
        at org.apache.camel.support.service.BaseService.fail(BaseService.java:342)
        at org.apache.camel.impl.engine.AbstractCamelContext.failOnStartup(AbstractCamelContext.java:4846)
        at org.apache.camel.impl.engine.AbstractCamelContext.init(AbstractCamelContext.java:2487)
        at org.apache.camel.support.service.BaseService.start(BaseService.java:111)
        at org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2494)
        at org.apache.camel.quarkus.main.CamelMain.doStart(CamelMain.java:94)
        at org.apache.camel.support.service.BaseService.start(BaseService.java:119)
        at org.apache.camel.quarkus.main.CamelMain.startEngine(CamelMain.java:139)
        at org.apache.camel.quarkus.main.CamelMainRuntime.start(CamelMainRuntime.java:49)
        at org.apache.camel.quarkus.core.CamelBootstrapRecorder.start(CamelBootstrapRecorder.java:45)
        at io.quarkus.deployment.steps.CamelBootstrapProcessor$boot-173480958.deploy_0(CamelBootstrapProcessor$boot-173480958.zig:101)
        at io.quarkus.deployment.steps.CamelBootstrapProcessor$boot-173480958.deploy(CamelBootstrapProcessor$boot-173480958.zig:40)
        at io.quarkus.runner.ApplicationImpl.doStart(ApplicationImpl.zig:722)
        at io.quarkus.runtime.Application.start(Application.java:101)
        at io.quarkus.runtime.ApplicationLifecycleManager.run(ApplicationLifecycleManager.java:101)
        at io.quarkus.runtime.Quarkus.run(Quarkus.java:66)
        at io.quarkus.runtime.Quarkus.run(Quarkus.java:42)
        at io.quarkus.runtime.Quarkus.run(Quarkus.java:119)
        at io.quarkus.runner.GeneratedMain.main(GeneratedMain.zig:29)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at io.quarkus.bootstrap.runner.QuarkusEntryPoint.doRun(QuarkusEntryPoint.java:48)
        at io.quarkus.bootstrap.runner.QuarkusEntryPoint.main(QuarkusEntryPoint.java:25)
Caused by: org.apache.camel.VetoCamelContextStartException: Failure creating route from template: mongodb-sink
        at org.apache.camel.component.kamelet.KameletComponent$LifecycleHandler.onContextInitialized(KameletComponent.java:405)
        at org.apache.camel.impl.engine.AbstractCamelContext.doInit(AbstractCamelContext.java:2765)
        at org.apache.camel.quarkus.core.FastCamelContext.doInit(FastCamelContext.java:568)
        at org.apache.camel.support.service.BaseService.init(BaseService.java:83)
        at org.apache.camel.impl.engine.AbstractCamelContext.init(AbstractCamelContext.java:2475)
Caused by: java.lang.ClassNotFoundException: com.mongodb.client.MongoClients#create("mongodb://myuser:mypasswd@<IP_ADDRESS>:27017")
        at org.apache.camel.quarkus.core.CamelQuarkusClassResolver.resolveMandatoryClass(CamelQuarkusClassResolver.java:59)
        at org.apache.camel.quarkus.core.BaseModel.addTemplateBeans(BaseModel.java:380)
        at org.apache.camel.quarkus.core.BaseModel.addRouteFromTemplate(BaseModel.java:300)
        at org.apache.camel.quarkus.core.BaseModel.addRouteFromTemplate(BaseModel.java:220)
        at org.apache.camel.quarkus.core.FastCamelContext.addRouteFromTemplate(FastCamelContext.java:235)
        at org.apache.camel.component.kamelet.KameletComponent$LifecycleHandler.createRouteForEndpoint(KameletComponent.java:387)
        at org.apache.camel.component.kamelet.KameletComponent$LifecycleHandler.onContextInitialized(KameletComponent.java:402)

Yeah unfortunately using factory methods is not supported yet when using #class: syntax

Created a ticket
https://issues.apache.org/jira/browse/CAMEL-16759

Instead you can use a script to create the bean
 flow:
    beans:
       - name: mongoDBConnection
         type: 'groovy'
         bean-type 'com.mongodb.client.MongoClient`
         script: 'com.mongodb.client.MongoClients.create("mongodb://myuser:mypasswd@<IP_ADDRESS>:27017")'

@lburgazzoli did we get rid of the duplicate code in camel-quarkus that setup local beans, eg I think in the past we had some code from camel-core copied over to camel-quarkus.
I am asking because I update the camel-core to add support for the #class with factory method in the DefaultModel class
https://github.com/apache/camel/commit/fa51da1029effa00b378293154a93d297c6c88af
The stacktrace in the top refers to a BaseModel in camel-quarkus, and I cannot find that anymore.

Camel 3.12 now supports the factory method (must be public static). You can include the return type class of the created bean (if you want) as that allows Camel to know its type for dependency injection, otherwise it becomes a Object type. You do this with the bean-type as shown:
 flow:
    beans:
       - name: mongoDBConnection
         type: '#class:com.mongodb.client.MongoClients#create("mongodb://myuser:mypasswd@<IP_ADDRESS>:27017")'
         bean-type 'com.mongodb.client.MongoClient`

As far as I remember yes we don't hvae the duplication anymore, but @jamesnetherton knows better

As far as I remember yes we don't hvae the duplication anymore, but @jamesnetherton knows better

Yeah, there is no duplication anymore. I don't think that change made it into CQ 2.0.0-M2, so it'll be there from 2.0.0 onwards.


PEP621: Updating declared project metadata

Thanks tunisia3507 for the callout. The first of many PEP alignments!
https://peps.python.org/pep-0621/
https://packaging.python.org/en/latest/specifications/declaring-project-metadata/

Wondering if optional-dependencies are used as dev-dependencies for pep-compliant tomls.

FYI, we built pyproject-toml-rs for maturin, it might also be usable in huak.

Perfect #247
Thanks for the heads up!

This should be addressed. Tag #171


Docker image build for UserManagement

Need to update the gradle jar path before building the docker image. Completed that.


Support for more than 2 notches

Thanks for this great library! Do you plan on adding support for more than 2 notches, as the UIKit version does?

My bad! Just realized the code example with only two notches doesn't mean that's the only way 🤦


Creating excel load with data and encrypt with password and export

Hi Team,
Is there any way by using this module " we can create a new excel,load values into it from PS Object and protect it with password and then export it to local rive"
Is there any code sample some thing which does this operation  with this module

Currently only worksheet passwords are supported.
rm C:\Temp\pwd.xlsx -ErrorAction Ignore

Get-Service | select Name,StartType,Status |
    Export-Excel C:\Temp\pwd.xlsx -Password TestPwd -Show


Failure: integration testkit shutdown

We sometimes have failures in the sample integration tests, when testkit shutdown is called in the after hook.
For example: https://app.circleci.com/pipelines/github/lightbend/akkaserverless-javascript-sdk/643/workflows/f47f307f-c483-46aa-b33c-1a28ad85cf75/jobs/3614
1) Shopping cart service
       "after all" hook for "should remove a cart":
     Uncaught Error: This socket has been ended by the other party
      at Socket.writeAfterFIN [as write] (net.js:457:14)
      at Channel.ondata (internal/streams/readable.js:726:22)
      at addChunk (internal/streams/readable.js:290:12)
      at readableAddChunk (internal/streams/readable.js:265:9)
      at Channel.Readable.push (internal/streams/readable.js:204:10)
      at SSH2Stream.<anonymous> (node_modules/ssh-remote-port-forward/node_modules/ssh2/lib/Channel.js:167:15)
      at parsePacket (node_modules/ssh2-streams/lib/ssh.js:3191:10)
      at SSH2Stream._transform (node_modules/ssh2-streams/lib/ssh.js:701:13)
      at SSH2Stream.Transform._read (internal/streams/transform.js:205:10)
      at SSH2Stream._read (node_modules/ssh2-streams/lib/ssh.js:253:15)
      at SSH2Stream.Transform._write (internal/streams/transform.js:193:12)
      at writeOrBuffer (internal/streams/writable.js:358:12)
      at SSH2Stream.Writable.write (internal/streams/writable.js:303:10)
      at Socket.ondata (internal/streams/readable.js:726:22)
      at addChunk (internal/streams/readable.js:290:12)
      at readableAddChunk (internal/streams/readable.js:265:9)
      at Socket.Readable.push (internal/streams/readable.js:204:10)
      at TCP.onStreamRead (internal/stream_base_commons.js:188:23)

Possibly fixed in #267.

Let's close and reopen if needed.


How can i add item amount range?

if player get this prize, i hope he can get a random amount of this item.
just like if i set 1-32, you will get item from 1 to 32 amount. a simple random

You can use the /give command to do this.
Example: /give %player% iron %random%:1-64


Resolve cold daemon and clean checkout performance regression

The changes for allowing injection by annotation (https://github.com/gradle/build-cache/issues/1395) introduce a performance regression in the cold daemon case, as the class generation now does more work, but only once per build JVM. Investigate whether there are some relatively cheap ways to remove this regression.

We decided not to do anything more about this for now.


Context menu should dismiss hover

It is confusing to see both a hover and a context menu:

Looks like @Tyriar has already fixed this generically for the hover service for September in https://github.com/microsoft/vscode/issues/106127

@alexr00 I'm surprised that would fix it? Does the native context menu trigger the intersection observer 😕

@Tyriar I tried to repro it out of master and I couldn't. I wonder if this is platform specific. Have you removed hideHover? I didn't see it.

Yes hideHover is removed, you can add it back if you need it:
	hideHover(): void {
		if (!this._currentHoverOptions)
			return;
		}
		this._currentHoverOptions = undefined;
		this._contextViewService.hideContextView();
	}

https://github.com/microsoft/vscode/commit/a26e4fdd2018dea1c76a673e85e03c41f7000a64


Update astropy-helpers to v1.3.1

This is an automated update of the astropy-helpers submodule to v1.3.1. This includes both the update of the astropy-helpers sub-module, and the ah_bootstrap.py file, if needed.
This is intended to be helpful, but if you would prefer to manage these updates yourself, or if you notice any issues with this automated update, please let @bsipocz or @astrofrog know!

There's one fail in the docs build:

https://travis-ci.org/astropy/regions/jobs/212825248#L737
https://github.com/astropy/regions/blob/master/docs/plot_compound.py#L56

I don't see this locally, and it's not clear to me what the cause / fix is.
@bsipocz - How do you want to handle this? Split this out into a separate issue? Or do you have time to have a look / an idea what's going on?

@cdeil - I’m afraid this fail is already present on master (have just restarted the travis builds for the last merge commit) so is independent of the helpers. The runs are using different sphinx versions, but I doubt that being the problem (there are failures with 1.5.1 and 1.5.3 and previous passes with 1.5.1 and 1.5.2).
Astropy is the other package that got changed since, previous passes were with 1.3 while the current failures are with 1.3.1. I don’t yet see how that could be related but haven’t had much time to investigate.

The failure occurs when trying to run docs/plot_compound.py.
python setup.py build_sphinx gives no errors/warnings for me, but I can reproduce the error by manually running docs/plot_compound.py.  The error occurs on line 53 (https://github.com/astropy/regions/blob/master/docs/plot_compound.py#L53) when trying to plot using a wcsaxes transform.  The result is a unit conversion error where the input unit (in SkyCoord?) somehow is None:
    new_val = self.unit.to(unit, self.view(np.ndarray),
AttributeError: 'NoneType' object has no attribute 'to'

The bug occurs in astropy 1.3.1 but not 1.3, but I'm not sure it's a wcsaxes or SkyCoord bug.
cc: @astrofrog

I had forgotten about this PR.
@bsipocz @larrybradley - What's the status / action item here? Is it possible to wrap this up or is this blocked somehow, waiting for a new Astropy bugfix release?

I restarted the failing test and it passed.  This is merged now.

@larrybradley - dank je


WIP: Add support for "Type T: Task Manged" activities

Fixes #507
WIP - Changes made during the review process of #518 will need to be reflected and reconciled with this PR.  Please hold off on review of this PR until those changes have been made and this PR has been rebased.
Note: this PR is a a super-set of PR #518 and must be merged after it.
This PR implements the following:

The ability to specify whether to limit the number of volunteers to the number required.  See my comment in #504 for more a detailed description. This capability is in place for both Activities and Tasks.  The "Wait List" capability has not yet been implemented.

Functionality changes on the Activity Detail page for a  "Task Managed" activity:

The "My Assigned Tasks" list was converted to an "accordion" .  Expanding the accordion provides additional information for the task, including: task description, number of users required and available spots, and skills required. The expanded panel also contains buttons for the various actions that can be performed.

An additional "Tasks" list, also an accordion, was created that contains all tasks for the activity that the user is not signed up for.  The user can sign up for tasks from this list. A filter option has been provided to hide tasks that are full. If IsLimitVolunteers is true for a task, the task name for tasks that are not full is shown in bold.

All of the actions, including: volunteering, accepting a task assignment, rejecting a task assignment, marking a task as complete, marking a task as unable to complete and unenrolling from a task have been converted to Ajax calls and no page refreshes occur for these actions.

Confirmation messages are now displayed after completion of each action.

When a user volunteers for a task an ActivitySignup is created if one does not already exist for the activity.  when a user unenrolls from a task the ActivitySignup is deleted if the user is not signed up for any other tasks in the activity.

last one on the stack.  After we know what to do with the others I will do same here.  Can someone also review this as the others have a review already in place?  Thanks.

WIP - Changes made during the review process of #518 will need to be reflected and reconciled with this PR.  Please hold off on review of this PR until those changes have been made and this PR has been rebased.

@mmoore99   please rebase off of master when ready as we now have a fix for the build/test issues!
For reference on rebasing this page helps (replace upstream with HTBox in examples) https://robots.thoughtbot.com/keeping-a-github-fork-updated

@tonysurma @mheggeseth I believe this PR is now ready for review.  I have updated the screen shots in the initial comment to reflect UI changes that have been previously discussed.  The branch has been rebased off of master.

Thanks @mmoore99, it looks like you will need (yet another :)) rebase
@mheggeseth @MisterJames can you review

Thanks @mmoore99, it looks like you will need (yet another :)) rebase
@mheggeseth @MisterJames can you review

@tonysurma rebase completed

@tonysurma another rebase completed

Thx @mmoore99, once we get a pr review I will pull it in.  kindly pinging @MisterJames @mheggeseth @dpaquette :smiley_cat:

@tonysurma @mmoore99 I can review (at least some) this weekend. There's a lot here.

I'll start reviewing this one now @mheggeseth

@mmoore99  this was a great PR and you bit off a big chunk of work here. It is much appreciated. I've requested a few small code cleanups, but otherwise:

Tests were included
DB migrations worked locally for me
Unit tests passing locally (and on build server)
Application runs
From what I believe I understand of the PR and original issue from the request and conversation(s) :eyes: it seems like most of the check boxes were ticked (save the wait list) :)

For future PRs I have the following suggestions:

a couple of the methods in handlers required some DB lookups that were multiple lines (because of the .ThenIncludes). It would be great to break out a private method for each of those so that the handler proper is a little easier to read, something like var thingy = GetThingy(id).
when you're doing validation in handlers, you could write a FooValidator object with public methods that would allow for unit tests on those validations

Finally, I know this was a monumental task, and you broke it out of another monumental task, but I feel like this could have been 4 or 5 seperate PRs. This is a hard thing to ask of a volunteer (especially as a fellow volunteer!) but this one was difficult to evaluate because of the size. Thankfully things were working and your code was at a good level, but when they're this big I can't review them on my lunch hour, if you get what I mean?
Thanks again...I'll merge after your code touches, please ping me.

@mmoore99 You're also going to have a small rebase to tackle because of #596, but it should only be the one file (ActivityController).

@MisterJames thanks for the review and the comments.  I have made all of the requested changes and rebased.  I fixed a bug that was introduced in the refactoring of ActivityController in PR #596.  Everything has now been pushed. My responses to some of your comments follow:

a couple of the methods in handlers required some DB lookups that were multiple lines (because of the .ThenIncludes). It would be great to break out a private method for each of those so that the handler proper is a little easier to read, something like var thingy = GetThingy(id)

I refactored a number of the handlers as per your suggestion.

when you're doing validation in handlers, you could write a FooValidator object with public methods that would allow for unit tests on those validations

I am afraid you lost me here. What validation in handlers are you referring to?  Is there an example that you can point me to that might help clarify?

but I feel like this could have been 4 or 5 separate PRs.

Got it!  I apologize for the size of the PR.  I will try to keep them more manageable in the future.

Awesome, thanks for the quick update!
So, as an example of where an external validator might come in handy is here:
https://github.com/HTBox/allReady/pull/523/files#diff-5370386cd1e40cd809df10a8a13d6a4bR42
Definitely not required at this point; I'm actually still trying to come up with a recommendation there, given that a validator of any capacity would require access to the database, which either means taking a dependency or dispatching via MediatR, so it's more work. I've trying the inline approach in my open PR (#602) right now, but I feel like it's probably best to remove the coupling.


feat(cli): migration:rollup command

As we iterate on database schemas in feature branches, the number of database migrations tends to grows fairly quickly. With an ever-increasing number of database migrations, it takes increasingly more time to run these migrations in the CI/CD environment and locally too. This PR introduces a convenient way to roll up (or combine) a list of migrations into a single migration. This is somewhat inspired by a similar Doctrine command. This command could eventually be used to roll up DB migrations in non-local environments too.
TODO:

add documentation once the API is locked (pending review)

Codecov Report
Base: 99.89% // Head: 99.88% // Decreases project coverage by -0.00% :warning:

Coverage data is based on head (c5b5e00) compared to base (925c798).
Patch coverage: 95.23% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #3633      +/-   ##
==========================================
- Coverage   99.89%   99.88%   -0.01%
==========================================
  Files         211      211
  Lines       13192    13213      +21
  Branches     3059     3063       +4
==========================================
+ Hits        13178    13198      +20
- Misses         14       15       +1

Impacted Files
Coverage Δ

...ckages/cli/src/commands/MigrationCommandFactory.ts
99.19% <95.23%> (-0.81%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

This is actually a very nice feature to have. "collapsing" 10 migrations into 1 is something really useful down the line.
Is there no interest in this being considered / finished ? @mareksuscak  @B4nan

The idea is good, I am not entirely sure about the implementation. I don't like that is first migrates all the way down and up again, it could mess up with the data easily, e.g. every migration that created a column will first drop it and recreate again - but without data. This could even potentically fail if its non null without a default, as that works only on tables without any rows.
Why don't we just merge the contents of the migrations, instead of messing up with the database?

I don't like that it first migrates all the way down and up again, it could mess up with the data easily, e.g. every migration that created a column will first drop it and recreate it again - but without data.

Totally. This was the only way I was able to get the rollup to work without writing a lot of custom logic. Also, you technically need to roll back to the first migration included in the rollup so you can do the diff and generate the rolled-up migration that contains all changes. Obviously, this wouldn't work if you wanted to run it in a non-local environment. This particular implementation is only good for rolling up migrations in feature branches as part of the final cleanup.
I was inspired by a similar feature in Doctrine (PHP world):
https://localheinz.com/articles/2020/06/10/rolling-up-database-migrations-with-doctrine/
I'd be happy to revisit this but was holding to get some feedback from the community and I also outlined some questions as I wasn't sure what's the best way to do certain things (SDK-wise)

Also, you technically need to roll back

But why? You have the migrations, they contain the queries, why recompute everything instead of just concatenating?

Concatenating comes with the same problems doesn it ? Alters are usually
hard to handle anyways. I am very in favour of this addition just to make
it clear.
vin., 3 feb. 2023, 21:59 Martin Adámek @.***> a scris:

Also, you technically need to roll back
But why? You have the migrations, they contain the queries, why recompute
everything instead of just concatenating?
—
Reply to this email directly, view it on GitHub
https://github.com/mikro-orm/mikro-orm/pull/3633#issuecomment-1416340132,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABU32VKNP7KEKN6CV2RDXALWVVPSNANCNFSM6AAAAAARL2OCK4
.
You are receiving this because you commented.Message ID:
@.***>

But why? You have the migrations, they contain the queries, why recompute everything instead of just concatenating?

You're not wrong. But consider you adding a new table, then adding a few more columns in the following migrations. If we just combine all migrations, there will be extraneous statements whereas it could be optimized to become a single statement. I know it's an optimization but there are other cases where you're experimenting with different states and so some migrations become unnecessary - which again - you could edit manually after the rollup. I'm impartial here and would be happy to explore the other approach which I did consider but again - it requires writing more custom logic - the solution contained in this PR only relies on existing commands.

I'd go with concatenation, as it will be safer (no chance of data loss) as well as faster (no queries involved), and you don't need to touch the snapshot file or the schema state at all. I don't mind supporting the down/up way too, but rather as opt-in than default, could be a --recreate flag/option.
Btw don't be afraid of doing changes around the codebase, this does not have to be just a self-contained CLI command - if you need to modify the snapshot, you can add some methods to the migrator, we can mark them as internal via jsdoc if they need to be public.
Maybe better target the v6 branch nowadays, I would be up to merging something not fully complete in there too and polish it a bit myself before the final release (which will take a few more months for sure).

@B4nan thank you for your feedback, Martin. I'll take a stab at this. It seems that I should be able to rely on the methods available in the Migration class that store all SQL statements in a string array and makes them available through getQueries so here's what I'm thinking in order of execution:

Determine the list of migrations to be concatenated
Dynamically import them and instantiate
Run up method and extract queries using getQueries - aggregate queries across all migrations in a new array
Run reset and then down method and extract queries using getQueries - aggregate queries across all migrations in a new array
Create a new migration file with all up and down queries concatenated
Delete the old migration files

How does that sound?

Migrations can contain code that directly works with the database (e.g. this.execute() calls), so I would rather go with direct code manipulation instead. It might be a bit tricky to do right, though. But we need to preserve those calls.

That's actually a great callout. I was trying to avoid having to use a JS/TS parser but I'm now not sure it's avoidable. I'd rather not rely on regex matching. If not, I'll have to use one of the available parsers (see the list below) in order to extract up and down functions' body. This will introduce a new dependency. Can you think of a different way to do this?


Cleanup: move container's functions to its own file

You have compiling error
daemon/exec.go:15: imported and not used: "github.com/docker/docker/pkg/promise"

@runcom  thanks, fixed.

LGTM

LGTM


[Doc][Improvement] Refine the documentation about the file format of GraphAr

Is your feature request related to a problem? Please describe.
Refine and improve the introduction of the GraphAr file format design, to make it more clear and easy to understand for beginners.
Describe the solution you'd like

Clarify the definitions of vertex ids, such as original id, global id, GraphAr internal id (inside vertex type).
Introduce the four types of adj_list (ordered_by_source, ordered_by_dest, unordered_by_source, unordered_by_dest) in more details.

Resolved by PR #165


Django Pex

Very new to Pex, just watch the introduction video. Just have a quick question.
So we have project running with Django in virtualenv, and we want to deploy our service using PEX from our Dev to Prod. Our code are outside virtualenv, we basically just source from the virtualenv, then running the manage runserver from our code folder to let the service up. We have build the myvirtual.pex from our virtualenv, but we just can't use the pex to start our service, and doesn't seem the manage are using the pex
./my_virtualenv.pex manage.py runserver <IP_ADDRESS>:8080
st recent call last):
File "manage.py", line 10, in
from django.core.management import execute_from_command_line
ImportError: No module named django.core.management
and if we tried with pex console, the import works just fine
./my_virtualenv.pex
Python 2.7.6 (default, Dec  7 2015, 16:39:29)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)

from django.core.management import execute_from_command_line

actually this is only happen on manage runserver, when I use the pex with manage other option, this can go through just fine
./my_virtualenv.pex manage.py shell
WARNING: IPython History requires SQLite, your history will not be saved
Python 2.7.6 (default, Dec  7 2015, 16:39:29)
Type "copyright", "credits" or "license" for more information.
IPython 4.0.1 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.
In [1]: exit()

already figure out that runserver has a child process, which make it looks like run twice


Skip resource updating completely if found in package load.

Add test
Use @XcrigX implementation from https://github.com/hapifhir/hapi-fhir/pull/3989
Add attribution and changelog

@XcrigX  Can you have a look at this Pull request, and see if it matches your desire? I tested by hooking an interceptor to the update and create pointcuts and ensuring they werent invoked.

Looks good to me.. good idea on adding an interceptor to check for updates, I should have thought of that. Thanks!


Correct ONNX documentation

Description
Fixes https://github.com/apache/incubator-mxnet/issues/15437
Checklist
Essentials
Please feel free to remove inapplicable items for your PR.

[ ] The PR title starts with [MXNET-$JIRA_ID], where $JIRA_ID refers to the relevant JIRA issue created (except PRs with tiny changes)
[x] Changes are complete (i.e. I finished coding on this PR)
[x] All changes have test coverage:
Unit tests are added for small changes to verify correctness (e.g. adding a new operator)
Nightly tests are added for complicated/long-running ones (e.g. changing distributed kvstore)
Build tests will be added for build configuration changes (e.g. adding a new build option with NCCL)
[x] Code is well-documented:
For user-facing API changes, API doc string has been updated.
For new C++ functions in header files, their functionalities and arguments are documented.
For new examples, README.md is added to explain the what the example does, the source of the dataset, expected performance on test set and reference to the original paper if applicable
Check the API doc at http://mxnet-ci-doc.s3-accelerate.dualstack.amazonaws.com/PR-$PR_ID/$BUILD_ID/index.html
[x] To the my best knowledge, examples are either not affected by this change, or have been fixed to be compatible with this change

Changes

Refer the correct ONNX operator coverage doc
Refer to the correct supported ONNX version

Comments

@mxnet-label-bot add [Doc, pr-awaiting-review]

@IvyBazan for review

LGTM, thanks for the fix!
You may want to re-trigger CI

@aaronmarkham for review/merge