Dockerfile delayed build issues

In #774, the Dockerfile was modified to allow passing an angular environment through an environment variable. This makes deployments easier as sites don't have to maintain their own docker build processes for each version of container they have (dev, stage, prod.) It does this by delaying the angular build to container startup rather than image build.
However, thss presents a couple of issues for orchestration.
We are using Rancher which sits on top of Kubernetes (I admit that here that I am no expert with k8s). When I redeploy a workload, I would like for the current running workload to stay running until the new workload has started. If the new workload fails to start for some reason, I would like to stay with the original workload and not switch to the failing one.
The issue with this new Dockerfile is that k8s is detecting that the workload has successfully started as soon as nginx has started up, and switches over to the new workload. But catanie is not yet available, as the npx build has not yet started. This can take up to three minutes to complete, meaning three minutes of downtime. Worse, if the npx  build fails (for example, something went over budget), then k8s is perfectly happy as its signal for success was that nginx has started up, and not that the angular build has succeeded.
Is there a way to change orchestrator's detection of success to be based on the angular build rather than the nginx startup, perhaps through the use of signals?

I would rather have a solution, where the container is immediately ready to be used, without going through a lengthy build process. Cant we have a single docker file but with prebuilt angular build, reading the env dependent configurations at run time ? @minottic could you have a look ?

@dylanmcreynolds , sorry for the late reply I was on holiday and, yes, you are right the build is very slow.
I think there are two aspects to it, what docker does and how you deploy. Here, the run of docker is very slow (and this time was before used in the build), and googling, there are some ways to optimes it, for example by increasing the memory or disabling the source-map option, both, by a certain extent, on the docker side.
For what concerns the deployment with a long startup time on k8s (what you point out here I think: for example, something went over budget), the solution is usually to increase the initialDelaySeconds in the startup probe or liveness probe.
To avoid downtime, when deploying on k8s, some solutions allow you to wait for the pod to be healthy before switching off the old one (I know it exists for helm). Are you using kubectl or helm or anything else? Also, maybe setting the initialDelaySeconds in the readiness probe already solves the downtime issue (I will check).
I am happy to have a chat if that helps

Cant we move the build process at build time, rather than run time ?

from what I understood, the build needs to have the environment.*.ts file to work, so if we pass it in the build every configuration will need its docker image. The build process at run time, conversely, was thought to be able to have one single image, independent from the specific configuration, and enabling the option of mounting configuration files just before run time (for example, with the catanie image it is now possible to run: docker run catanie -v environment.dev.ts:environment.dev.ts or docker run catanie -v environment.prod.ts:environment.prod.ts).
Not too sure if this answers your question.

Yes, it does, thx !

I'm actually using Rancher's implementation on top of k8s. I'll play with startup checks and health check, thanks for the suggestion.
This is an interesting question. I love the feature you added because I don't have to create my own unique docker image. But if I had a choice of having a delay during build time vs. deploy time for a production image, I would definitely choose build time.

Hi, while I'd love environment agnostic builds as well, I just want to add another aspect: At the moment I have the catanie image running on a bare k8s node (VM) limited to 2G RAM. Which works fine as long as the image is built on another machine because this needs much more resources with angular (as mentioned above) than running it.
Therefore, building stuff when starting the container would kind of break this setup. (Tested earlier that building catanie on that node does not work ;)

hi @ibressler , yes, as mentioned with Dylan, I agree the time+resource requirement is high, and doing it during the run can be a problem for some environments. But even in this case, I would be inclined to keep this dockerfile as I think it cannot be env specific basically because it is not scalable (as an end point I imagine facilities being able to install scicat without even having access to the code base -github-, just by pulling an image and mounting the configuration, plus I am not a fan of having 100 config files in github). So, in summary, I think the dockerfile/image needs to be config agnostic.
To address the resource consumption I see these possibilities (sorted following my preference :)):

we understand if config variables can be provided after the angular build or if there is a way to speed up the angular build
we could provide this dockerfile as a base image, that you later run somewhere else (not on k8s, e.g. on the CI runner) with more resources, mounting the config files and then pushing to your registry, which you later pull from docker
we move the config files somewhere else (as Fredrik was suggesting, e.g. to catamel)

I don't fancy too much 3, as it creates a server-> client relation, instead of the usual client->server one.

Personally, I strongly favor option 3 that @bolmsten proposed. I can imagine adding "configuration management" to the services that catamel provides, a service that provides such for multiple areas including catamel, zip-service and others. Having one place for configurations that affect the suite of services that are SciCat would make deployment (and learning how to do it) easier.

Having one place for configurations that affect the suite of services that are SciCat would make deployment (and learning how to do it) easier.

I support that idea, especially since properly enabling/disabling some features require changes in both parts config (catanie & catamel, at least) to be effective.

Would https://nx.app/angular-cli-faster  be of any help here ? Can we make use of such caching functionality ?
Concerning option 3: I guess this is only an option if we migrate configuration settings to a new conf file ouside the current environment files. We would also loose any build time code optimization in this case, I assume.

@stephan271...that seems like something nice for development, but I would be nervous make an external service like this a dependency for starting up the container.

I am not sure, that the external service is actually needed, by default it is a local caching as far as I understood...I may be wrong however

This issue should have been solved with PR #915.
Closing it. I will re-open if needed


probleme when extracting unicode word

Environnement

ubuntu 20.04
gcc10 (I tried clang 13 and newer gcc version on compiler explorer)
ctre/3.4.1

Code to reproduce
#include <ctre-unicode.hpp>
#include <iostream>

int main()
{
    for (auto match : ctre::range<"\\p{Letter}+">("Tu es un génie"))
    {
        std::cout << match << std::endl;
    }
    return 0;
}

You can find these code on compiler explorer here
My problem
I expected this result :
Tu
es
un
génie

But i got this one
Tu
es
un
g�
nie

I'm quite confident on my regex because i tested it online here.
I don't know if i used wrong the library or if this kind of things  is currently not supported or if it's a bug.

It works like a charm, thank you very much!
Currently the documentation doesn't have an example on Unicode, maybe we could an example like this?

I'm currently quite busy, but PR is welcome.


Update get_preview to new PostPreview API

In the spirit of #hacktoberfest, I figured I would contribute back to my favorite WP plugin!
This one is pretty simple but I ran into it the other day. Just updating the tease views to use post.preview instead of the now deprecated post.get_preview.

Thanks @Daronspence!


Use the command line ROCM RPATH

Modified CMakeLists file. The change allows overriding ROCM_RPATH from command line.

@srinivamd @sanjtrip @Lynd98

there is a different way to utilize RPATH now.


ambient: fix: use lastest pod status to determine the action

Please provide a description of this PR:
numerous err/warning log outputs unexpected while label/unlabel the ambient mode :
2024-02-03T13:43:47.988707Z    warn    ambient    failed to find pod netns    ns=default name=details-v1-5f4d584748-ddk86                                                                                ??
2024-02-03T13:43:47.988730Z    error    ambient    failed to remove pod to ztunnel: failed to find pod netns    ns=default name=details-v1-5f4d584748-ddk86                                                                                ??
2024-02-03T13:43:47.988772Z    warn    ambient    failed to find pod netns    ns=default name=httpbin-worker1-7b47f9576c-m27vp                                                                                ??
2024-02-03T13:43:47.988779Z    error    ambient    failed to remove pod to ztunnel: failed to find pod netns    ns=default name=httpbin-worker1-7b47f9576c-m27vp                                                                                ??
2024-02-03T13:43:47.988790Z    warn    ambient    failed to find pod netns    ns=default name=notsleep-5ccf57569-2h7xp                                                                                ??
2024-02-03T13:43:47.988798Z    error    ambient    failed to remove pod to ztunnel: failed to find pod netns    ns=default name=notsleep-5ccf57569-2h7xp                                                                                ??
2024-02-03T13:43:47.988806Z    warn    ambient    failed to find pod netns    ns=default name=ratings-v1-686ccfb5d8-5xgbj                                                                                ??
2024-02-03T13:43:47.988810Z    error    ambient    failed to remove pod to ztunnel: failed to find pod netns    ns=default name=ratings-v1-686ccfb5d8-5xgbj                                                                                ??
2024-02-03T13:43:47.988815Z    warn    ambient    failed to find pod netns    ns=default name=sleep-9454cc476-lkvgc                                                                                ??
2024-02-03T13:43:47.988819Z    error    ambient    failed to remove pod to ztunnel: failed to find pod netns    ns=default name=sleep-9454cc476-lkvgc                                                                                ??
2024-02-03T13:43:47.988855Z    warn    ambient    failed to find pod netns    ns=default name=backend-5cbb9cd947-z5lgn                                                                                ??
2024-02-03T13:43:47.988863Z    error    ambient    failed to remove pod to ztunnel: failed to find pod netns    ns=default name=backend-5cbb9cd947-z5lgn

2024-02-03T13:44:37.726771Z    error    Command error output: xtables other problem: line 2 failed                                                                                ??
2024-02-03T13:44:37.726786Z    error    iptables    failed to restore iptables rules: exit status 1                                                                                ??
2024-02-03T13:44:37.726812Z    error    ambient    failed to update POD inpod: default/ratings-v1-686ccfb5d8-5xgbj exit status 1                                                                                ??
2024-02-03T13:44:37.726817Z    error    ambient    failed to add pod to ztunnel: exit status 1

RCA: while controller watch POD/NS event, based on the NS label event, we will add the pod into mesh, an annotation will be tagged to the pod by design, then another POD update event will be triggered, an unexpected Add/Remove action executed.
Fix: use latest pod status to determine if further action needed

@PlatformLC: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests-arm64_istio
0cf279d337f644187306adff5b61a9554b572742
link
true
/test unit-tests-arm64

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@PlatformLC: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests-arm64_istio
0cf279d337f644187306adff5b61a9554b572742
link
true
/test unit-tests-arm64

lint_istio
0cf279d337f644187306adff5b61a9554b572742
link
true
/test lint

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@PlatformLC: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests-arm64_istio
0cf279d337f644187306adff5b61a9554b572742
link
true
/test unit-tests-arm64

lint_istio
0cf279d337f644187306adff5b61a9554b572742
link
true
/test lint

unit-tests_istio
0cf279d337f644187306adff5b61a9554b572742
link
true
/test unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@bleggett PTAL, the UT failed should be expected we remove the 'junk' update. I'm not sure if it's intended to add such junk update, any background of it?

@PlatformLC: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests-arm64_istio
032207617ead6aa64686ca52abb8362f5d4621ba
link
true
/test unit-tests-arm64

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@PlatformLC: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests-arm64_istio
032207617ead6aa64686ca52abb8362f5d4621ba
link
true
/test unit-tests-arm64

unit-tests_istio
032207617ead6aa64686ca52abb8362f5d4621ba
link
true
/test unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

please add tests

Updated, PTAL


Patch 7.1.4

Closes #141
This patch release fixes the following issues:

[MGBA] Added a RANDOMBALL() command for picking a random starter Pokéball
Setting your Pokémon's Hidden Power type can now be cycled forwards or backwards
Autoflush SaveRAM is now more accurate
Fixed an issue where legacy Tracker versions (7.0.3 and lower) weren't being notified of new update

This is why this patch version ends in 4 instead of anything else. (x.x.4 is greater than x.x.3)

Fixed an issue where the asterisk on "Moves *" wasn't highlighting properly
Fixed an issue where a player wasn't able to set their own Hidden Power
Fixed an issue where some moves were spoiled if a player caught and released Pokémon too frequently

Note, this is reversing a change to "Track all moves when you capture a new Pokemon and add it to your team." As this was, for some people, definitely over the line.
I think one possible solution to this is to trigger on-level up, the track the last four moves the original Pokemon has, working backwards from that level. This way it will ignore any TMs or moves sketched, since it wont be tracking from the current moveset, but rather the original moveset.


can not  set the global $PATH of flutter, what should I do?

can not set the global $PATH of flutter, what should I do?

Steps to Reproduce
I following the https://flutter.dev/docs/get-started/install/macos guide, but still can set the  global $PATH of flutter.

edit .bash_profile isn't work,
execute export PATH="$PATH:[PATH_TO_FLUTTER_GIT_DIRECTORY]/flutter/bin" is ok, but only work for current terminal window
after close terminal and re-open one terminal, I lose  the $PATH again, as following image shows

https://stackoverflow.com/search?q=[flutter]+%24PATH

add to your flutter bin path to the ~/.zshrc file or add source ~/.bash_profile to the ~/.zshrc

@lihui2333 thanks a lot!

zsh !== native terminal

.zshrc !== .bash_profile

$ cat .zshrc
$ vim .zshrc

# flutter PATH & zsh
export PATH="$PATH:/Users/xgqfrms-mbp/Documents/Flutter/flutter/bin"

$ source $HOME/.zshrc

.zshrc path


[FLINK-14264][StateBackend][Rest] Expose state backend in checkpoint rest api

What is the purpose of the change
Expose stateBackend in jobs/:jobId/checkpoints/config rest api
Verifying this change
This change added tests and can be verified as follows:

CheckpointConfigInfoTest#testJsonMarshalling

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

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

Documentation

Does this pull request introduce a new feature? (no)
If yes, how is the feature documented? (not applicable)

cc @aljoscha
another question: is there a way to automatically update the rest_api.html or do I need to update the rest_api.html manually? I followed the README in docs, seems does not generate the config.
and if there is not automatically generate script currently, do we need to add one?

@klion26 It's a bit harder to find but there is this: https://github.com/apache/flink/blob/e1ca4c46ea7e2940b0200b635bc49766d594ffb0/flink-docs/README.md

@aljoscha thanks for the reply, have generated the rest document.

@zentol thanks for your review.
First, I want to set the checkpoint backend name in StreamingJobGraphGenerator, so we do not need to update the checkpoint backend name after, but we may get a null when calling streamGraph.getStateBackend(), so I changed to udpate the checkpoint backend name as currently in ExecutionGraphBuilder which can get the truely checkpoint backend name, this checkpoint backend will also be passed into CheckpointCoordinator to create the checkpoint storage.

Currently, I set the default value of "stateBackend" to "disabled", because when I run job(disabled periodic checkpoint) on yarn, I can still get the checkpoint config from rest.
I find that in CheckpointConfigHandler we use checkpointConfig == null  to  judge  whether enable or disable checkpoint, and the doc of AccessExecutionGraph#getCheckpointCoordinatorConfiguration says that Returns the {@link CheckpointCoordinatorConfiguration} or null if checkpointing is disabled., but after disabling checkpoint with rocksdbbackend, I still can get the config from rest api.
I'll find out why this happens and come back.

Currently, we use jobGraph.getCheckpointingSettings() == null to test whether enabled Checkpoint, but when generating JobGraph in client-side, we'll always set checkpointSettings, so we'll always create CheckpointCoordinator whether or not enable checkpoint.
I think we can create another issue to use jobGraph.isCheckpointingEnabled() instead of jobGraph.getCheckpointingSettings() == null to test whethe enable checkpoint or not, so we can init stateBackendName with null here, because we'll always fail if checkpoint is disabled, and wil never call getStateName. what do you about this? @zentol

So I asked around and the reason why the CC is created even if checkpointing is disabled is that you still need it to support savepoints.
In other words, the existing code only differentiates between batch/streaming jobs; but all streaming jobs are handled the same. Let's not touch this code.

because we'll always fail if checkpoint is disabled
Which part would be failing right now?

Which part would be failing right now?

Currently, not part will fail right now. I said that it will always fail is that if we do not create CC after disabled checkpoint, then the rest for checkpoint config will always fail
Before I find that the rest will throw exception with reason RestHandlerException( 			"Checkpointing is not enabled for this job (" + executionGraph.getJobID() + ").", HttpResponseStatus.NOT_FOUND),  so I thought the rest will always "fail" if checkpoint has been disabled, but it did not.  even checkpoint has been disabled, we can get a result from rest with the interval of Long.MAX, so I set the default value of stateBackendName to disabled, but seems the default value will never be used :(, if we create CC, then rest will always return the truly backendName, if we do not create cc, then rest will fail, and will not  read the backendName. So maybe we can still set the default value to null for stateBackendName here. what do you think?
Apart from the default value of stateBackendName the PR is ready for review now.

I'm fine with setting it to null by default; it's a bit odd that the CC can be null in the ArchivedEG but not the stateBackendName.

@zentol  thanks for the replay, updated it.


Excluding some exported functions from the documentation

Is there a way to exclude some functions from the haddockumentation even if they are exported from a module?
I am confronted with the following scenario:

I want to verify (quickcheck) a library outside of this library.
This involves writing testable properties of internal (non-exported) functions.
As the Haskell module system prevents this, I have to export the internal functions as well.
I do not want them to show up in the library haddockumentation.

Any way to achieve this?
Ideally, the documentation generation should be possible independent of the constraints of the Haskell module system.
According to https://www.haskell.org/haddock/doc/html/introduction.html, Haddock supports reexporting documentation from an internal module to a user-exposed module, but for my purposes I would need this on the library level.
Quoting https://www.haskell.org/haddock/doc/html/introduction.html:
Haddock therefore understands the Haskell module system and can generate documentation which hides not only non-exported entities from the interface, but also the internal module structure of the interface. A documentation annotation can still be placed next to the implementation, and it will be propagated to the external module in the generated documentation.

Deafening silence...

@andreasabel My recommendation for you is to add a Cabal flag that controls whether or not the entities are exported or not, and only generate Haddock documentation if the flag is disabled.


Clean install host IP is wrong

I just installed the rancher server and a host on the same machine to test and it pops up as expected under hosts, only it's IP address is incorrect. As IP it shows:
<IP_ADDRESS>
That's the IP address of the docker0 network interface. Is this a bug or a misconfiguration on my part?
After some googling I tried adding:
-e CATTLE_AGENT_IP=MYSERVERIP
and when I use docker logs of the created host, it's stuck at:
INFO: Attempting to connect to: http://MYSERVERIP/v1
ERROR: http://MYSERVERIP/v1 is not accessible

Instead of putting in "MYSERVERIP", you need to put in the actual IP of the Rancher server (i.e. <IP_ADDRESS>) when you register the host.

I just did that as an example, I used my real IP everywhere I mention MYSERVERIP.

If you run docker agent command without the "-e CATTLE_AGENT_IP=MYSERVERIP" it won't work if you stop the agent and restart it with the "-e".
Did you try to run the agent command as a new container?

Yes I didn't try stopping and starting always recreate form scratch for example:
sudo docker run -d --privileged -e CATTLE_AGENT_IP=MYSERVERIP -v /var/run/docker.sock:/var/run/docker.sock rancher/agent:v0.7.9 http://MYSERVERIP:8080/v1/scripts/F83B7FB3F682E0D75AEB:1434049200000:fAR3lTg4BOl7OSHH5LH3XSWl8s0
I tried using curl MYSERVERIP:8080 from the agent container and it results in connection timed out while pinging MYSERVERIP works just fine.
 :)


Testing a condition is maintained

Is there a way to test a condition is maintained for at least a given duration. To test condition A is maintained at least 5 seconds I have the following ugly code in my tests:
// do something in my test method
try {
    await().atMost(5, TimeUnit.SECONDS).until(this::testConditionA);
    assert false;
}catch (ConditionTimeoutException e){
    //nothing, everything is alright
}
// do something in my test method

Is there a better way to do the same thing ? Something I'd like to write would be:
await().atMost(5, TimeUnit.SECONDS).check(this::testConditionA);

@davidbinderRTE This is something I've been thinking about from time to time. Currently there's no good support for it. There atLeast built-in but it's not really what you're after. Maybe you could hack something up by creating a CondtionEvaluationListener and store the value of each call to it somewhere and then check afterwards if everything was ok. But this is hacky indeed.

+1 for a feature like this. If I have a moment I might work on something for it and raise a PR.


Adding ePay

As Faucetbox is closing down are you planning to add ePay?

Hello,
We will support instead Faucetbox the micropayment service FaucetHub (Faucethub.io).
Thanks


New output css class for md2html

Allows separate styling of code and output blocks in HTML.

Thanks! Looks good. Would you also have a suggestion for improved default style for outputs?

I would prefer if the output boxes had the same width as code blocks.

I agree

Same width is fine with me. I'm surprised to find out that I don't see how to do that. My expectation was that the skeleton css should have simply:
pre.output {
  filter : brightness(90%);
  border : none;
}

But then the output blocks come out too wide.
What seems to happen is that the settings for pre and pre.sourceCode.julia are being overridden in the HTML output by the pre.hljl selector, which has seemingly unrelated margins and padding values.

I actually never noticed that Highlights.jl has it's own margin and padding settings, that seem to be hardcoded https://github.com/JuliaDocs/Highlights.jl/blob/f09cfa21e3e45e3970ec23f2daba33dc5bdfc597/src/Format.jl#L99 . I think the easiest solution in this case is to use the same values for pre.output.

Done. It's unfortunate to hard-code a value embedded in a dependency like that, but the architecture doesn't seem to give much of a choice.

I think it would be fair to also open an issue over there to get that
fixed.
On Tue, Feb 12, 2019, 06:33 Toby Driscoll<EMAIL_ADDRESS>wrote:

Done. It's unfortunate to hard-code a value embedded in a dependency like
that, but the architecture doesn't seem to give much of a choice.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/mpastell/Weave.jl/pull/172#issuecomment-462781841,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABlaLwbQN9IU62eUDp4M89lbhGn-kZ1fks5vMtCrgaJpZM4awsHV
.

I have left a request at Highlights.

I'll merge this as there is no response yet on Highlights.jl side and this is a useful feature.

Thanks a lot @tobydriscoll !


pangeo-hubs, support: increase prometheus memory limit from 8->12 GB

Following instructions in https://infrastructure.2i2c.org/en/latest/sre-guide/common-problems-solutions.html#prometheus-server-is-out-of-memory-oom as suggested by @GeorgianaElena this is what I ended up with.
This is now deployed successfully!
I did not try increase 8GB to 9GB etc, and went straight to 12GB, thinking it will cause us more trouble than its worth to get this tuned perfectly. I've seen a need for more than 16GB in memory as well for prometheus-server, so nudging it just slightly didn't seem like the right call.

I went for a self merge so that we don't downgrade this again by mistake.


Microsoft.DevCenter TypeSpec for Stable API 2024-02-01

Data Plane API - Pull Request

API Info: The Basics
Most of the information about your service should be captured in the issue that serves as your API Spec engagement record.

Link to API Spec engagement record issue:

Is this review for (select one):

[ ] a private preview
[ ] a public preview
[ ] GA release

Change Scope
This section will help us focus on the specific parts of your API that are new or have been modified. Please share a link to the design document for the new APIs, a link to the previous API Spec document (if applicable), and the root paths that have been updated.

Design Document:
Previous API Spec Doc:
Updated paths:

Viewing API changes
For convenient view of the API changes made by this PR, refer to the URLs provided in the table
in the Generated ApiView comment added to this PR. You can use ApiView to show API versions diff.
Suppressing failures
If one or multiple validation error/warning suppression(s) is detected in your PR, please follow the
Swagger-Suppression-Process
to get approval.
❔Got questions? Need additional info?? We are here to help!

 Contact us!
The Azure API Review Board is dedicated to helping you create amazing APIs. You can read about our mission and learn more about our process on our wiki.

💬 Teams Channel
💌 email

Click here for links to tools, specs, guidelines & other good stuff
Tooling

Open API validation tools were run on this PR. Go here to see how to fix errors
Spectral Linting
Open API Hub

Guidelines & Specifications

Azure REST API Guidelines
OpenAPI Style Guidelines
Azure Breaking Change Policy

Helpful Links

Schedule a data plane REST API spec review

Checks stuck in `queued` state?
If the PR CI checks appear to be stuck in `queued` state, please add a comment with contents `/azp run`.
This should result in a new comment denoting a `PR validation pipeline` has started and the checks should be updated after few minutes.

PR is looking good :)

@catalinaperalta I think we're happy with the current state of the typespec, mind taking another look through when you get a chance?

I've generated the sdks for both java and js from this tsp, and they are good even though their pipeline here are failing.


Delete OutstandingToken via django-admin

On user deletion, set OutstandingToken.user to NULL and blacklist user tokens
Fix for #201
I still need to figure out how to run unit tests, but if anyone else wants to look this over and give me feedback, I'd appreciate it.

==== 124 passed in 1.73s ====
Doesn't effect unit tests. I'll test is out locally today or tomorrow.


Issues for Awesome-book

hey,
@YoutLone, Great job! You code is very easy to read and there is not any major issue in you code.

However in your nav.js instead of using ->

addSection.style.display = 'none';
listSection.style.display = 'block';
contactSection.style.display = 'none';
home.style.display = 'none';
addNew.style.color = 'black';
contact.style.color = 'black';
list.style.color = 'rgb(59, 59, 190)';
you can use helper class(CSS).

There is a library in Luxon that return the date according to the instruction instead of modifying the date function

Thank you


Processing all deploy_challenge actions before any clean_challenge actions

I'm trying to use letsencrypt.sh to generate a single certificate for a number of domains (e.g.
example.org, mail.example.org, imap.example.org).
My DNS provider doesn't have an API - instead I have to upload text files with the DNS records and these get pushed out to the nameservers within 20 minutes. I can automate the process of creating the relevant TXT records from the information provided to my hook script (as $ARGV[4]) but the issue is that I have to wait 20 minutes after a deploy_challenge action to ensure that the records will definitely be on all the nameservers. This isn't a problem for one domain, but becomes a bit of a pain when I'm trying to generate a certificate for multiple domains.
At the moment I'm using the following command:
./letsencrypt.sh --hook ./hook.pl --challenge dns-01
which results in hook.pl being called as follows:
foreach (domain in domains)
  deploy_challenge domain
  clean_challenge domain

However, I want to process all the deploy_challenge actions first and then process all the clean_challenge actions, like so:
foreach (domain in domains)
  deploy_challenge domain

foreach (domain in domains)
  clean_challenge domain

Is this possible?

You might want to try setting HOOK_CHAIN="yes" in your config.sh and then have your hooks loop over groups of arguments. Each hook will be called only once with arguments for all domains together rather than 1 call per domain.
I've been using this option just fine to deploy all DNS challenges and ensure propagation automatically before proceeding to validate all and then clean all.

Yes you should be able to use the HOOK_CHAIN config option like @welwood08 suggested.
I tried documenting this feature here: https://github.com/lukas2511/letsencrypt.sh/blob/master/docs/hook_chain.md


Avalonia 11.0.8 break Menu in Linux

Describe the bug
After upgrade from Avalonia 11.0.7 to 11.0.8 Menu popup position is broken.
The Submenu doesn't show up at all. Also Menu transparency disappeared.
To Reproduce
Create the Menu and MenuItems in .axaml
..
        <Menu>
            <MenuItem Header="_File">
                <MenuItem Header="_Open..."/>
                <Separator/>
                <MenuItem Header="_Exit"/>
            </MenuItem>
..
        </Menu>
..

Expected behavior
Like in 11.0.7
Screenshots

Environment

OS: Linux Ubuntu 20.04 amd64, Astra Linux, +nvidia
Avalonia-Version: 11.0.8
net7.0, net6.0

Additional context
11.0.7 works great

The position issue should be fixed by #14551. I don't know about transparency, though.

Fixed by #14551
Let me know if transparency issue is still there. But I would expect it to work properly with fixed popup parents.

@maxkatz6 Transparency issue remaines

Apart from the transparency issue, Menus are now also cut off at the window border: https://github.com/AvaloniaUI/Avalonia/issues/14568

Can confirm this, noticed after upgrade too. Submenu doesnt show up after 11.0.8


Fix/read version

Description

Provide a summary of the modification as well as the issue that has been resolved. List any dependencies that this modification necessitates.

Fixes #36  (issue)

Changes

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

Checklist

[X] My code follows the pre-commit style and check guidelines of this project.
[x] I have performed a self-review of my code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing tests pass locally with my changes

@dreaquil, thank you for creating the PR. There is currently a problem with our CI. Once fixed, we'll test this.

CI.log
@dreaquil CI fails when VERSION is used, which was the reason why the version was hardcoded as a temporary fix. I'll look into it.

PR #229 addressed the issue. We had to modify get_version function. We could close this PR. Thanks for the efforts!


Allowing angular-touch to work with jQuery.

Angular includes a small subset of jQuery out of the box called jqLite. Normally, angular wraps all the elements it passes to its directives in jqLite. When jQuery is loaded ahead of angular, angular instead wraps its elements in the full implementation of jQuery. Additionally, angular wraps its events in jQuery. These jQuery events work throughout most of angular. Angular-touch currently was not working with those jQuery-wrapped events. Touches were registering inconsistently and rarely when using the ngClick directive. This commit should fix that. I took it from another person I found on github. I'm not sure why his changes were never merged into the main angular.js repo, but I've verified that it works and I decided to submit a pull request for it. There is a bug/issue thread I found relating to this. It is linked below.
https://github.com/angular/angular.js/issues/4001

@mcmar or @jasonals - is it possible that you could create a unit test that fails before this patch? We cannot merge this PR without one?

@petebacondarwin - this issue has been annoying for me too, so I decided to try creating some tests for it. I could unfortunately come up with just one that would fail without the patch, and I created PR #10797 that has the test in it.
The problem is the way browserTrigger triggers touch events. It creates a mouseEvent, so the behavior of ngClick.js differs in tests and on real devices. For example, on touchstart, event.clientX and event.clientY would be undefined without the patch, so on touchend, click would never get triggered because dist will be undefined too.
I'll be happy to write more tests, but I haven't been able to find a way to emulate touch events properly: document.createEvent('TouchEvent') works fine in Chrome in mobile emulation mode, but throws an exception in normal mode. And I can't see a way to run Karma tests in mobile emulation mode. Some people are suggesting to use Chrome extensions, but I'm not sure if it's a viable solution for Angular.
Any way you could help me with it? Or maybe just accept the PR in its current state?

LGTM. Generally, in jQuery the original event is always available at event.originalEvent, event copies some properties and normalizes some that differ between browsers. Touches are not copied so originalEvent should be used everywhere.
Why didn't current unit tests catch this? They run on jQuery as well.

@mcmar you have linting errors, see why the Travis build failed.

@mzgol - I've fixed the linting errors in PR #10797 that contains changes from this PR.
I wasn't sure how to add a commit to a PR that was not mine.
Current unit tests didn't catch this because, as I commented earlier, browserTrigger doesn't actually issue a touch event.

@pomerantsev I commented under #10797.

I went in another direction as just assigning $event.originalEvent to $event breaks the general assumption that $event is a jQuery/jqLite event object, not a native one. Please see #11471.


Could not find com.sangcomz:FishBun:0.11.2

Bug Report
multiple_images_picker version: 1.0.1
Is it happening on Android: yes
Is it happening on iOS: no
$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.10.2, on macOS 13.4.1 22F82 darwin-arm64, locale de-DE)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2022.2)
[✓] VS Code (version 1.79.2)
[✓] VS Code (version 1.80.0-insider)
[✓] Connected device (2 available)
[✓] Network resources

• No issues found!

Describe the bug
Hi there,
whenever I want to build any of my projects using multiple_images_picker version: 1.0.1 I get this build error on android builds:
$ flutter build apk

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':multiple_images_picker:generateReleaseRFile'.
> Could not resolve all files for configuration ':multiple_images_picker:releaseCompileClasspath'.
   > Could not find com.sangcomz:FishBun:0.11.2.
     Required by:
         project :multiple_images_picker

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 6s
Running Gradle task 'assembleRelease'...

Looks like the FishBun dependency is not available anymore.
In case it helps: resolving the dependecy worked just fine 4 days ago (last successfull know build was 2023-06-19)
In case you need any help to debug this further please let me know
thansk for your help,
markus

Hi, I had the same problem,
I fixed it by change the library dependencies
in build.gradle
in root
multiple_images_picker-1.0.1\android\build.gradle
from
implementation 'com.sangcomz:FishBun:0.11.4'
to
implementation 'io.github.sangcomz:FishBun:0.11.4'
it will be like this :
dependencies {
implementation 'androidx.exifinterface:exifinterface:1.3.1'
implementation 'io.github.sangcomz:FishBun:0.11.4'
implementation 'com.github.bumptech.glide:glide:4.11.0'
}
Regards


netopeer2-server crash when 'callhome' connection is closed with multiple yang-push subscriptions

This is with top of devel branches for netopeer2, libnetconf2, sysrepo, and libyang (as of 04/19/22):
Steps to reproduce:

Startup ODL/lighty.io NETCONF client listening for "callhome" connections (SSH)
Configure netopeer2-server for callhome ssh connection and start
netopeer2-server connects to NETCONF client
Establish "multiple" subscriptions for periodic yang-push
Stop NETCONF client
netopeer2-server disconnects from NETCONF client
On yang-push period it starts a thread to push message and crashes

Note that the same steps does not cause crash, when there is only single yang-push subscription.
Here is the crash dump of netopeer2-server:
(gdb) run
Starting program: /usr/bin/netopeer2-server -d
warning: Error disabling address space randomization: Operation not permitted
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7f7570794700 (LWP 1358)]
[New Thread 0x7f756ff93700 (LWP 1359)]
[New Thread 0x7f756f792700 (LWP 1360)]
[New Thread 0x7f756ef91700 (LWP 1361)]
[New Thread 0x7f756e790700 (LWP 1362)]
[New Thread 0x7f756df8f700 (LWP 1363)]
[New Thread 0x7f756d78e700 (LWP 1364)]
[New Thread 0x7f756cf8d700 (LWP 1365)]
[New Thread 0x7f7573482780 (LWP 1366)]
[New Thread 0x7f7557fff700 (LWP 1367)]
[Thread 0x7f7557fff700 (LWP 1367) exited]
[New Thread 0x7f7557fff700 (LWP 1368)]
[Thread 0x7f7557fff700 (LWP 1368) exited]
[New Thread 0x7f7557fff700 (LWP 1369)]
[ERR]: LN: Session 1: SSH channel poll error (Socket error: disconnected).
[New Thread 0x7f75577fe700 (LWP 1370)]

Thread 14 "netopeer2-serve" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f75577fe700 (LWP 1370)]
0x00007f7572423d28 in sr_errinfo_free (err_info=0x7f756800daa0) at /opt/dev/sysrepo/src/log.c:338
338	        if (((*err_info)->err_count != 1) || ((*err_info)->err[0].err_code != SR_ERR_NO_MEMORY)) {
(gdb)
(gdb)
(gdb) bt
#0  0x00007f7572423d28 in sr_errinfo_free (err_info=0x7f756800daa0) at /opt/dev/sysrepo/src/log.c:338
#1  0x00007f7572423401 in sr_api_ret (session=0x7f756800da80, err_info=0x0) at /opt/dev/sysrepo/src/log.c:89
#2  0x00007f75724048bc in sr_session_switch_ds (session=0x7f756800da80, ds=SR_DS_OPERATIONAL) at /opt/dev/sysrepo/src/sysrepo.c:861
#3  0x00005617c8c1c733 in yang_push_notif_update_send (ncs=0x7f7568000bd0, yp_data=0x7f7564002c00, nc_sub_id=2) at /opt/dev/Netopeer2/src/yang_push.c:865
#4  0x00005617c8c1c92e in yang_push_update_timer_cb (sval=...) at /opt/dev/Netopeer2/src/yang_push.c:920
#5  0x00007f75730d4467 in timer_sigev_thread (arg=0x7f7550000c80) at ../sysdeps/unix/sysv/linux/timer_routines.c:62
#6  0x00007f75729ed6db in start_thread (arg=0x7f75577fe700) at pthread_create.c:463
#7  0x00007f757212b61f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
(gdb) p *err_info
$1 = (sr_error_info_t *) 0x20
(gdb) up
#1  0x00007f7572423401 in sr_api_ret (session=0x7f756800da80, err_info=0x0) at /opt/dev/sysrepo/src/log.c:89
89	        sr_errinfo_free(&session->err_info);
(gdb) up
#2  0x00007f75724048bc in sr_session_switch_ds (session=0x7f756800da80, ds=SR_DS_OPERATIONAL) at /opt/dev/sysrepo/src/sysrepo.c:861
861	    return sr_api_ret(session, err_info);
(gdb) p *session
$2 = {conn = 0x0, ds = SR_DS_OPERATIONAL, sid = 0, user = 0x7f7568007d10 "", nacm_user = 0x7f75680092f0 "", err_info = 0x20, orig_name = 0x74 <error: Cannot access memory at address 0x74>, orig_data = 0x7f756800c3f0, ev =<PHONE_NUMBER>, ev_data = {
    orig_name = 0x7f7568002a70 "\200\331", orig_data = 0x7f756800d670}, ev_error = {message = 0x7f756800bcb0 "\020\256", format = 0x0, data = 0x0}, ptr_lock = pthread_mutex_t = {Type = Recursive, Status = Not acquired, Robust = No, Shared = No, Protocol = None},
  subscriptions = 0x0, subscription_count = 33, dt = {{edit = 0x7f756800dce0, diff = 0x7f7568002b50}, {edit = 0x20, diff = 0x24}, {edit = 0x7f756800c4c0, diff = 0x7f75680008d0}, {edit = 0x0, diff = 0x75}}, notif_buf = {thread_running = 0, tid =<PHONE_NUMBER>742891, lock = {
      mutex = pthread_mutex_t = {Type = Normal, Status = Not acquired, Robust = No, Shared = No, Protocol = None}, cond = pthread_cond_t = {Threads known to still execute a wait function = 0, Clock ID = CLOCK_REALTIME, Shared = No}, r_mutex = pthread_mutex_t = {
        Type = Normal, Status = Acquired, possibly with no waiters, Owner ID = 149, Robust = Yes, Shared = Yes, Protocol = Priority protect, Priority ceiling = 0}, readers = {1744885216, 32629, 0, 0, 0, 0, 0, 0,<PHONE_NUMBER>, 22039},
      read_count = "\000\000\000\000\000\000\000\000\320d", upgr = 22039, writer =<PHONE_NUMBER>}, first = 0x300000101, last = 0x7f7568008be0}}
(gdb) up
#3  0x00005617c8c1c733 in yang_push_notif_update_send (ncs=0x7f7568000bd0, yp_data=0x7f7564002c00, nc_sub_id=2) at /opt/dev/Netopeer2/src/yang_push.c:865
865	    sr_session_switch_ds(user_sess->sess, yp_data->datastore);
(gdb) p *user_sess
$3 = {sess = 0x7f756800da80, ref_count = 1}

Yes, a problem with freeing all the subscriptions, should work now.


make model initializer injector idempotent

Deployments were get double mutated - once on creation and again when scaled.
Fixes #225

This change is

@ellis-bigelow  @cliveseldon

/lgtm

Can do.. I can move the check to the initializer and check for the presence
of the init container...
On Mon, Jul 8, 2019, 10:32 PM Dan Sun<EMAIL_ADDRESS>wrote:

@yuzisun commented on this pull request.
In pkg/webhook/admission/deployment/mutator.go
https://github.com/kubeflow/kfserving/pull/228#discussion_r301402023:

@@ -71,6 +71,12 @@ func (mutator *Mutator) Handle(ctx context.Context, req types.Request) types.Res

func (mutator *Mutator) mutate(deployment *appsv1.Deployment, configMap *v1.ConfigMap) error {

// only mutate if not already mutated
mutated, ok := deployment.Spec.Template.ObjectMeta.Annotations[constants.DeploymentMutatedInternalAnnotationKey]
if ok && mutated == "true" {

Can we just check the number of init containers on the deployment ?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/kubeflow/kfserving/pull/228?email_source=notifications&email_token=AA2CTBN3NT4Q4S2JWERZV3TP6QPFVA5CNFSM4H7BMQQ2YY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOB52DZJA#pullrequestreview-259275940,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA2CTBJUKTXHJYMTSXNS2ADP6QPFVANCNFSM4H7BMQQQ
.

@yuzisun removed extra annotation and made the model initializer injector idempotent

/lgtm

/approve

Thanks for the timely fix.
/lgtm
/approve


New version: YaSuenag.SimpleCom version 1.2.3

Pull request has been created with WinGet Releaser v2 :rocket:
Microsoft Reviewers: Open in CodeFlow

/AzurePipelines run

I don't know why the pod determined this installer is invalid. I tested the installer on Windows Sandbox (Win 11), and it works.
Can you share details of error?

Hi @YaSuenag,
The package didn't pass a Defender or similar security scan. This might be a false positive and we can rescan tomorrow.
(Automated response - build 703.)

Automatic Validation ended with:

Installation failed with exit code -1978335187 2024-02-03 06:17:27.766 [FAIL] Installer failed security check. Url: https://github.com/YaSuenag/SimpleCom/releases/download/v1.2.3/SimpleComInstaller-1.2.3.msi Result: 0x80004005

(Automated response - build 703.)

/AzurePipelines run


fix typo in docstring

calculation and variable names were correct, just mistyped the docstring

Codecov Report
Attention: 5 lines in your changes are missing coverage. Please review.

Comparison is base (f9c8175) 95.98% compared to head (5dd4a68) 95.68%.
Report is 18 commits behind head on main.

Files
Patch %
Lines

aglio/_utilities/dependencies.py
84.61%
2 Missing :warning:

aglio/seismology/collections.py
50.00%
2 Missing :warning:

aglio/mapping.py
80.00%
1 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #25      +/-   ##
==========================================
- Coverage   95.98%   95.68%   -0.31%
==========================================
  Files          26       26
  Lines        1369     1389      +20
==========================================
+ Hits         1314     1329      +15
- Misses         55       60       +5

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Consider renaming to vim-powershell?

Just because there's https://github.com/PowerShell/vscode-powershell and vim-powershell is actually the repo name we used for the original one that shipped in CloudShell.
Just a thought.
I'd also want to talk to https://github.com/ant-druha/powershell about calling it intellij-powershell 😃
We'd wanna get sign off from @corbob before the name change though - don't want to step on any toes but I think he's really interested in what you're doing in this repo 😄

I had a big long reply, but it was mostly rambling. So here it is: I don't own the name vim-powershell, and would be more than happy to move anything I've done there over to here assuming it moves (I'm concerned it doesn't because they're different Language Client implementations).

I just realized that all the plugins that use coc are, called coc-*...
In that case, we meet in the middle with coc-powershell 😊

after we settle down with this, we can talk to coc.nvim maintainer to get our plugin advertised. :D

done, and we are now coc-powershell

PR sent to coc.nvim. We can close this now;


Move license to top of tutorials.

Staged one: https://colab.research.google.com/github/tensorflow/swift/blob/tutorials/docs/site/tutorials/custom_differentiation.ipynb
Make sure you save the notebooks with the left TOC open in Colab. (little black arrow in upper left)

Thanks for the catch! All tutorials have "toc_visible": true now.
$ grep -nr '"toc_visible": true' docs/site/tutorials
docs/site/tutorials/model_training_walkthrough.ipynb:10:      "toc_visible": true
docs/site/tutorials/using_raw_tensorflow_operators.ipynb:10:      "toc_visible": true
docs/site/tutorials/custom_differentiation.ipynb:10:      "toc_visible": true
docs/site/tutorials/python_interoperability.ipynb:10:      "toc_visible": true


Spreadsheets with workbook name other than /xl/workbook.xml in _rels/.rels cannot be opened

workbook.xml is hardcoded in xldocument.cpp, but is actually variable.
I do not encounter this problem when (re)saving a file in excel (or libreoffice calc), the workbooks in question get outputted by a program that I need in my (customers) workflow.
Opening and saving in excel or libreoffice will cure this, but this is not a welcome addition to the (automated) workflow.
In these cases, the name will be /xl/workbook22.xml, which is not repeated in [Content_Types].xml (in contrast to workbook.xml in the ordinary case).
Some (copilot) prodding got me:
Variability in Workbook Paths:
You mentioned that sometimes the workbook path is workbook22.xml.
The specific name (e.g., workbook22.xml) can vary based on the workbook’s history, edits, and other factors.
Excel assigns unique names to different versions of the workbook, especially when you make changes or save multiple copies.
Why Different Names?:
The variation in workbook names allows Excel to manage different versions, track changes, and handle concurrent editing (e.g., when collaborating with others).
Each time you save the workbook, Excel may increment the number or use a different identifier to avoid overwriting existing files.

The initial bug is that workbook.xml will (obviously) not be found in m_data so an exception is thrown.
I tried feeding m_data with data (including xmlid) from _rels.rels, which will make the open succeed apparently, but then the sheets will not be found (older version of openxlsx).
Another gotcha in this case is that shared strings has x:si instead of si which gets flagged in the may 25 revision.
So I am not confident to find a solution myself and hope for any comments.

workbook22.xml contains:
<x:workbook xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><x:fileVersion appName="SpreadsheetLight" />...views...sheets...</x:workbook>
The workbook id in .rels is not echoed in the sheets, e.g. sheetId="1" r:id="R4b78b06d10804515" vs .rels: Target="/xl/workbook22.xml" Id="R8892f0194c3849b0".
So it seems a lot of additional code may be needed to cover this case and perhaps the "SpreadsheetLight" moniker will help.

I would say that this not a bug in OpenXLSX, but a bug in whatever produced the workbook you are trying to open. In ECMA-376 (the official standard for the Office Open XML formats) part 1, section 12.2 stipulates that the workbook data must be physically located in the /workbook.xml file.

So a workbook file named workbook22.xml is clearly non-standard

Thank you for the info. I admit not reading the standard. Too lazy and/or busy with other things.
There remains a nag on my mind that the standard may not exclude older standards, so we should adhere to /xl/workbook.xml when creating new (and preferably, saving old) workbooks, but still be able to open this case.
Reasons: appName="SpreadsheetLight" in /xl/workbook22.xml and the fact that there is a library for this (https://github.com/ARLM-Keller/SpreadsheetLight, presumably relevant, did not check further).
Then (again) both excel and libreoffice will open these files; after an excel save, the (new) standard is applied.
From a worksheet the problematic xmlns (x:): xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main"
(I could not access this and similar through a browser.)
Looking at modern standard spec (in workbook.xml), I see e.g.:
xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"
xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x15 xr xr6 xr10 xr2" xmlns:x15="http://schemas.microsoft.com/office/spreadsheetml/2010/11/main"
xmlns:xr="http://schemas.microsoft.com/office/spreadsheetml/2014/revision"
xmlns:xr6="http://schemas.microsoft.com/office/spreadsheetml/2016/revision6"
xmlns:xr10="http://schemas.microsoft.com/office/spreadsheetml/2016/revision10"
xmlns:xr2="http://schemas.microsoft.com/office/spreadsheetml/2015/revision2">
which seems to include a lot of versions/revisions.
I have solved my problem in a rather hacky way by changing XL_Document and XLXmlData (cpp and hpp), took me a few hours.
After making workbook.xml (and workbook.xml.rels) variable (namewise) and getting the name from .rels, putting it in m_data:
When loading (and finding nonstandard workbook*.xml), I remove the problematic xmlns (x:) and record the distinct names by xml source; when saving, I put them back (hoping for no conflicts of any kind).
I have not investigated whether this is more generally adequate and useful.
I doubt you want to incorporate such mods, but if you wish to look at them, let me know.
No offense if you close this.

@janhec : Out of curiosity: can you summarize the exact relation of all XML fields and fields that are different with respect to your workbook22.xml?
I am not entirely sure how your _rels/.rels file is looking - is the workbook22.xml referenced like so?
	<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook22.xml"/>
The important bit I am interested in here is whether or not the exact type string is reflected here, so that the document format is at least logically consistent and the workbook file name could be looked up by checking the _rels/.rels file for the relationship entry with that type.

The .rels file looks like this:
<?xml version="1.0" encoding="utf-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"> <Relationship Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="/docProps/core.xml" Id="R1089e9da7ec94cca" /> <Relationship Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="/xl/workbook22.xml" Id="R8892f0194c3849b0" /> </Relationships>
workbook22.xml goes like this:
<?xml version="1.0" encoding="utf-8"?><x:workbook xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><x:fileVersion appName="SpreadsheetLight" /> <x:bookViews><x:workbookView /></x:bookViews> <x:sheets> <x:sheet name="Workspace" sheetId="1" r:id="R4b78b06d10804515" /> ... more sheets ... </x:sheets> </x:workbook>
The workbook filename can be looked up.
A bit of code I added in XLDocument.cpp, open() about line 460
std::string wbpath; bool wbfound = false;
for (auto rel : m_docRelationships.relationships()) {
    if (rel.type() == XLRelationshipType::Workbook) {
        wbpath     = rel.target();
        auto xmlid = rel.id();          // trying both id's: as they say, identical
        //xmlid = m_docRelationships.relationshipByTarget(wbpath).id();
        if (wbpath[0] == '/') wbpath.erase(0, 1);
        m_data.emplace_back(/* parentDoc */ this,
                            /* xmlPath   */ wbpath,
                            /* xmlID     */ xmlid,
                            /* xmlType   */ XLContentType::Workbook);
        wbfound = true;
        break;
    }
}
if (!wbfound) wbpath      = "xl/workbook.xml";
needsxcheck               = wbpath != "xl/workbook.xml";    // consider check appName="SpreadsheetLight" in xl/workbook*.xml
const std::string wkbrels = "xl/_rels/" + wbpath.substr(3) + ".rels";
m_data.emplace_back(this, wkbrels);    //, "", XLContentType::Workbook);
m_wbkRelationships = XLRelationships(getXmlData(wkbrels));

Please treat the appended xlsx file as confidential in the sense of not
sharing it widely, e.g. through putting it on a site. Keep private if
possible.
I tried shortening it without losing the workbook22 thing, but failed to
produce a readily loadable result, time is up for a bit.
Btw, I had no apparent difficulty with the r:id's.
Didn't notice that a format was enforced, anyhow I may not have gone deep
enough to notice.
But I could load and save it after my mods.
Thanks for looking into this!
Jan
PS shouldn't mention it here, perhaps, but I had trouble appending rows
with new rows having to be added to the worksheet.
This worked fine with the previous (2024-05-04) lib, but not in the
2024-05-24 version.
XLWorksheet::Row(unint32_t) constructor -> getRowNode(XMLNode, uint32_t),
rowNumber > result.attribute("r").as_ullong(), return -> XLQuery ->
execQuery (SharedStrings) result empty
XLRow(const XMLNode&, const XLSharedStrings&).
Subsequent .cells() gave me m_rowNode empty, m_firstCol 1, m_lastCol 0.
.cells().begin() then crashes when doing a unique_ptr: Exception thrown:
read access violation.
std::forward<pugi::xml_node & __ptr64>(...) returned nullptr.
I'll still have to replay this without my mods, but it does not obviously
seem connected to the mods.
Advice welcome.
On Thu, Jul 11, 2024 at 2:29 AM aral-matrix @.***>
wrote:

Hmm... I am a bit worried about the worksheets r:id="R4b78b06d10804515"
in workbook22.xml - OpenXLSX has a bunch of code that makes assumptions
about how the r:id values are of the format "rId###" where ### is strictly
numerical.
Could you provide a full example of one of your xlsx files with a
workbook22.xml so that I can have a look at whether it could be supported
without major changes?
A file that does load without problems in libreoffice would be great :)
—
Reply to this email directly, view it on GitHub
https://github.com/troldal/OpenXLSX/issues/254#issuecomment-2221764142,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADTBHL7JAPMMXXJ4VBACJO3ZLXGX7AVCNFSM6AAAAABKNE2BZCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMRRG43DIMJUGI
.
You are receiving this because you were mentioned.Message ID:
@.***>

Please treat the appended xlsx file as confidential in the sense of not sharing it widely

I am not sure if I am missing something w.r.t. how github is used, but I do not see an attachment. You can reach me via my codeberg profile https://codeberg.org/lars_uffmann - email is listed there.

my apologies, it indeed doesn't show up to non-registered users - I don't see your email either though :D
However, my project files contain my email, e.g. this one:
https://codeberg.org/lars_uffmann/fwmqueue/src/branch/master/demo.cpp (line #5) - I just want to avoid linking it directly here with this github account, I hate microsoft with a passion :D

Issue resolution is implemented in my development branch, tested by @janhec & working as expected (correct me if I missed something) without impacting general function / performance - once I get a chance to coordinate with @troldal the change will hopefully make it here.

Development branch development-aral with the desired functionality is now available here on the repo.

And the functionality is merged into the main repo. Finally able to close this :)


fix: get element type from interp.u instead of  interp

fixes: #253
In DataInterpolations@v4, eltype(interp) returned eltype(interp.u) as it subtyped AbstractVector of type which is the eltype of interp.u
In DataInterpolations@v5, eltype(interp) returns Any as the subtyping to AbstractVector is removed, hence the issue. Fixing it to use eltype(interp.u).
Added a few tests to ensure the returned vectors have the same type as interp.u.

Not sure why Symbolics.jl is failing to precompile - https://github.com/SciML/DataInterpolations.jl/actions/runs/9316593135/job/25645177538?pr=254#step:6:376

Depwarns are turned to errors. I'll handle this today.


Always show absolute urls

Sometimes we see relative url:

and sometimes - absolute:

all on the same page.
It can be confusing plus as far as i know status bars in other browsers are always shows absolute urls.
This pull request normalizes urls to always show the absolute one.

I really do like the relative urls when they appear. They feel easier to understand for me. The same page having multiple types is definitely weird though... I'm not sure how to handle this yet.

Well, Safari extensions can have preferences, so i guess a checkbox "Show absolute URLs" would help i think.

I like the relative URLs as well.

Well, i like when my URLs are normalized :) I just added settings for absolute URLs, it's disabled by default. How about that?

I was about to file an issue for this.  I'd prefer it to emulate the default status bar as much as possible with behaviors like this, as well.

I can get behind the default-disabled option. I'll merge this soon.

Thanks for the PR too by the way.

I'd really appreciate normalized URLs becoming the default setting. That would match the normal behavior of Safari (and every other browser).

@VFK I ended up doing this in a slightly different way, contained mostly to global.html. thanks for the initial PR though. will credit you in the README anyways.

released in v1.13


Headings that appear before the h1 element cause warnings

Summary
Pages that contain headings before the h1 element fail the test named 'Structure: Headings: Headings must be in ascending order', even though this is not forbidden by BBC accessibility guidelines or the HTML specification.
Expected Behaviour
No warnings.
Current Behaviour
When running the tool on a page that contains a h2 element before the h1, a warning like this is displayed:
  ⚠ Structure: Headings: Headings must be in ascending order
    - First heading was not a main heading: //div[@id='bbcprivacy-prompt']/h2

Possible Solution
The rule 'Structure: Headings: Headings must be in ascending order' could be either:

modified to only check the document structure after the first h1 element
removed because there is currently no agreed standard for document outlines in HTML

Steps to Reproduce
For example, in the following HTML snippet, the first h2 would cause a warning.

This will fail

Foo

Foo

Foo

Foo

Context & Motivation
On the BBC Children's websites, a cookie banner appears with a h2 heading. It appears before the article's h1 heading, causing the rule to fail.
Your Environment

Version used: 2.2.6
Operating System and version: CentOS 6
Link to your project: https://github.com/bbc/childrens-responsive

This is related to ORBIT elements, so relevant for all pages, not only Children's pages.
Josh shared https://www.w3.org/WAI/tutorials/page-structure/headings/#main-heading-after-navigation as an example of the situation we have.

It should be straight forward enough to remove the scenario at line 142 of https://github.com/bbc/bbc-a11y/blob/master/features/standards/mag/structure/02_headings.feature, and related tests.
However, I think it might be wise to include a check for h1 being the first heading within the main container. We do have checks that the page has one main container, so it would be reasonable to have a warning on that, so that h1 not being first is not abused.

Foo

This will pass

Foo

Foo

Bar

This will send a warning

Foo

Actually, thinking about this further, there may be many cases where you don't want the main heading (h1) to be in the main content. For example, on a homepage where there is no particular content, you may wish to put this in the header of the page.

I think this is falling into the remit of what meets guidelines and what could be considered good practice.
Here are the guidelines we look to:

WCAG AA - Headings and labels describe topic or purpose, and can be programmatically determined.
BBC MAG - Content has a logical and hierarchical heading structure.
BBC HTML guide - document has 1 h1, followed by sequential heading levels, each heading followed by content.

What we would expect:

Headings to be coded as headings (not only styled differently).
A single h1 per web page.
Headings following the h1 to be in sequential order with no skipped levels.
Some content to follow each heading, for which the heading is a suitably descriptive label. Content can include a lower level heading.

If the page has a main element (expected by the HTML guide) then the h1 should probably be the first heading within that main element, which should contain all the main content of the page that the h1 would be considered a label for. For BBC homepage or any index page the main content is usually the page banner with the h1 and the promos linking to other content.
If there are headings before the h1, they may be ignored when determining if headings after the h1 are "sequential". I would not want to encourage headings before the h1, but neither would I want to dictate what level of heading is or isn't OK before the h1.


can't provide jQuery

Maybe I don't understand this webpack config properly, but I can't provide jQuery globally
I put ProvidePlugin where I can, but it does not work for me
new webpack.ProvidePlugin({
       'window.Tether': 'tether',
       $: 'jquery',
       jQuery: 'jquery'
}),

I'll explore this in the next release

@corpz works fine for me, in kit/webpack/browser.js, I've added
    new webpack.ProvidePlugin({
      $: 'jquery',
      jQuery: 'jquery',
    }),

to the plugins-array.


Fix temp deb file name

Removing the extra d from the end of temp file name

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@grijeshsaini Can you update the changelog? https://github.com/cypress-io/cypress-docker-images/blob/master/factory/CHANGELOG.md

@grijeshsaini Can you bump the docker factory version here? https://github.com/cypress-io/cypress-docker-images/blob/master/factory/.env#L17 Sorry, we should have this in our contributing instructions. I was just learning this myself.


Updating a and b in the PESG optimizer

Hello, I see that you update the model's parameters using the regime (momentum, decay etc) and you update the alphas according to the update equations. I wanted to know why you don't explicitly update the primal variables 'a' and 'b' in the PESG code. Is that happening internally in the autograd engine? Thanks!

Hello,  a, b will be added into model's parameters after you initialize the PESG optimizer, which means a, b will be updated as long as you update the model's parameters. However, alpha is slightly different. The update follows gradient ascent and there is no v_ref for alpha in current optimization algorithm. Thus, alpha is not included in model's parameters and directly updating the alpha by the equations will be much easier.


Adding the PassBy[ME] provider

I've added the PassBy[ME] provider to the list

Since when is 70x70 is considered to be 32x32?
Also please rename the logo to be just passbyme.png

that filename...
:+1: for not using any blank spaces though :wink:

Oh, sorry for the image! I had the correct (32x32) image, but renamed the wrong one to _32x32 and after that the harm was done. :)
I have resized and renamed the image again. I am going to send in a new pull request with them.


slide 4

Description
Hi I think slide 4 of lecture 9 has an error it should print 1 instead of No Value for the ifPresentorElse example right?
Description of the question here.
Topic:
Specific Topics this question is related to (If Any)
Screenshots
Screenshots (if any)

Yea I also think the output for this code example is 1 and I typed it out in jshell just to confirm.

Yes that will be true and there is a error in th slide. Since after filtering, it will be Optional[1] that remains and thus 1 will be printed out.

Yeah I think that there is definitely an error in the slide as the value 1 should be printed. According to how ifPresentOrElse function works, since 1 will be filtered as the condition holds, there will be a value present and hence it is printed, and thus the second argument is not computed.

i was also utterly confused by the slide, thanks for clarifying


Repaire make build errors

When do the action "make" in the service catalog, errors like the
following:
"sed "s/GO_VERSION/1.10/g" < build/build-image/Dockerfile |
docker build -t scbuildimage -f - .
unable to prepare context: unable to evaluate symlinks in
Dockerfile path: lstat /root/service-catalog/-: no such file
or directory". We need repaire it.

This PR is a

[ ] Feature Implementation
[x] Bug Fix
[ ] Documentation

What this PR does / why we need it:
Which issue(s) this PR fixes

Fixes #
Please leave this checklist in the PR comment so that maintainers can ensure a good PR.
Merge Checklist:

[ ] New feature

[ ] Tests
[ ] Documentation

[ ] SVCat CLI flag
[ ] Server Flag for config

[ ] Chart changes
[ ] removing a flag by marking deprecated and hiding to avoid
breaking the chart release and existing clients who provide a
flag that will get an error when they try to update

@viviyww try upgrading your Docker cli - in the past I've seen this when an old Docker (one that doesn't support "-" as an option to "-f") is used.

@duglin ok, thanks.

[root@k8smaster ~]# docker version
Client:
Version:      1.12.3
API version:  1.24
Go version:   go1.6.3
Git commit:   6b644ec
Built:
OS/Arch:      linux/amd64
Server:
Version:      1.12.3
API version:  1.24
Go version:   go1.6.3
Git commit:   6b644ec
Built:
OS/Arch:      linux/amd64
Is this problem?

I think version 1.12.3 is about 2 years old so I would upgrade

https://github.com/docker/cli/commit/924af54d98c46d3a5d521d1854def994a8064536

same opinion as @duglin
/hold

I had similar issue previously and I asked this questions before ,the solution and answer
is documented in
docs/devguide.md
0d6f93aa docs/devguide.md    (Carolyn Van Slyck     2018-06-29 11:13:45 -0600  68) * Docker 17.05+ installed locally

/close


Removing reliance on experimental TF_GetServerDef TensorFlow api

Removing reliance on experimental TF_GetServerDef TensorFlow api.
This will unblock: https://github.com/tensorflow/swift-apis/pull/957
Part of: https://github.com/tensorflow/swift-apis/issues/970

Any tips on how to properly test this are appreciated.

@compnerd How do I test Windows?


Update VmdbDatabase::Seeding.seed_self error handling

Apparently I was too specific for the error handling in https://github.com/ManageIQ/manageiq/pull/18785. This switches the exception handling from Errno::ENOENT to just StandardError.
I've also added a spec.

@himdel @skateman Please review.

Confirming this fixes the problem assuming my diagnosis was completely right - somebody using fedora should confirm this too :).
$ chmod 700 /var/lib/postgresql/11/
$ git checkout master
$ bundle exec rake db:seed
Errno::EACCES: Permission denied @ rb_file_s_stat - /var/lib/postgresql/11/main

$ git checkout pr18787
$ bundle exec rake db:seed
(no errors)

:+1:

@mzazrivec , @Hyperkid123 , @hstastna , @skateman You all mentioned not being able to run db:seed today.
Can you please test this fixes it?

1) VmdbDatabase::Seeding .seed_self (private) returns nil for the data disk name if it cannot be determined
     Failure/Error: expect(db.data_disk).to be_nil

       expected: nil
            got: "none"
     # ./spec/models/vmdb_database/seeding_spec.rb:95:in `block (4 levels) in <top (required)>'

I can't duplicate this locally. Any ideas?

@djberg96 The test is not mocking anything.
For me, the failure is:
  1) VmdbDatabase::Seeding .seed_self (private) returns nil for the data disk name if it cannot be determined
     Failure/Error: expect(db.data_disk).to be_nil

       expected: nil
            got: "/dev/mapper/thror--vg-root"
     # ./spec/models/vmdb_database/seeding_spec.rb:95:in `block (4 levels) in <top (required)>'

and that's indeed the filesystem where my postgres is.
So.. the test will only pass on fedoras that can't access the DB dir.

The fix works for me.

Ok, updated the mock so that it's actually doing something, and the Gemfile so that the sys-filesystem gem doesn't need an explicit require to work.

@miq-bot add_label bug, hammer/no

Merging for now to unstick others...we can discussing going back to require false in a followup.


Dynamic config

When I have flatpickr with enableTime: true and I choose date and time, then I change config with fp.set('enableTime', false) and time input is still rendering, but flatpickr close after select date.
Demo
https://jsfiddle.net/9wuc4sqe/1/
Your Environment

flatpickr version used: 4.5.2
Browser name and version: Chrome 69
OS and version: Windows 10

@padinko flatpickr doesn't support dynamically changing some variables like enableTime yet. For now, you can just re-create the flatpickr instance.

@chmln Hi, I am using aurelia-flatpickr, i want to change mode from single to range based on condition. I am trying, not wokring, any assistance ?

@SalkiDixit you will need to destroy flatpickr and create new one with updated settings

@padinko flatpickr doesn't support dynamically changing some variables like enableTime, showMonths, etc yet. For now, you can just re-create the flatpickr instance.

This point should be mentioned in the docs.

enableTim

i still looking these feature so i have a dynamic modal with flat-pickr and sent parameter format, sometimes 'YYYY' sometimes 'YYYY-MM-DD' , so we cant do that ?


Determine project signup requirements

What is it?
After completing #2363 then:
See Notion
Timeline:

Sign up: November 11th - November 25th
Application Review Process: November 26th - December 9th
Voting: January

Eligibility:

Libraries must have been made publicly available before [DATE] via one of the following package managers: NPM, PIP, Yarn, or GitHub Packages. Libraries not distributed via these platforms will not be considered.
Builders must verify library ownership through the Retro Funding sign-up process.

Open question:
How do we verify that a certain builder maintains a certain library?

Good people to speak to:

TMM (Viem)
Faina (OP Labs)

Things to validate
What Package managers do we need to support?
We should discover this by seeing what package managers are used by RF4 Onchain Builder projects.
How do we verify package ownership?
In favour of the simplest solution here

@JSeiferth IMO the simplest solution is to ask people to require people to add a GitHub repository in their own repo's package.json file.
See here
It's the best industry convention for linking npm => GitHub.
Then for verification, when a project registers their npm package, we can:

Query the npm server to get this manifest file.
Get the GitHub repo from the manifest
Verify that the user is a owner of this GitHub repo using the same process that we used for GitHub.

Only people with publish rights to the npm package AND is a GitHub owner of the repo will be able to claim the npm package this way.
We can implement the both on the Agora frontend and oss-directory validator logic.

Summary of our discussion just now cc @JSeiferth:

We will focus on npm (JavaScript) and crates (Rust) only
Sign up flow:

Project will select their package(s) in the sign up
Query the npm / crates* server to get the manifest
Get the GitHub repo from the manifest
Verify that the user is an owner of the GitHub repo via the funding.json

Eligibility check:

Projects must have 3+ dependents in the ecosystem
Hopefully we can just have an initial list that captures >90% and then any project that isn't on it can give evidence (eg, GitHub of three projects that use them, which we can review)

Open questions:

OSO need to verify that crates works the same as npm in terms of getting the manifest
OP need to share this flow with Agora to make sure they our comfortable implementing it
OSO will put together an updated list of libraries and downstream metrics before Devcon 🤞


net/http: Client returns "request canceled" on timeout

Please answer these questions before submitting your issue. Thanks!

If possible, provide a recipe for reproducing the error.
A complete runnable program is good.
A link on play.golang.org is best.
package main

import (
	"context"
	"fmt"
	"log"
	"net/http"
	"time"
)

func main() {
	req, err := http.NewRequest("GET", "https://httpbin.org/delay/3", nil)
	if err != nil {
		log.Fatal(err)
	}

	ctx, cancel := context.WithTimeout(context.Background(), 500*time.Millisecond)
	defer cancel()

	_, err = http.DefaultClient.Do(req.WithContext(ctx))
	fmt.Printf("err = %v (%T)\n", err, err)
	fmt.Printf("ctx.Err() = %v (%T)\n", ctx.Err(), ctx.Err())
}

What did you expect to see?
err = context deadline exceeded (context.deadlineExceededError)
ctx.Err() = context deadline exceeded (context.deadlineExceededError)

err should be a "context deadline exceeded" error and it should be the same as ctx.Error().
What did you see instead?
err and ctx.Error() are different. err is a "request canceled" error even though the context's cancel() hasn't been called yet.
err = Get https://httpbin.org/delay/3: net/http: request canceled while waiting for connection (*url.Error)
ctx.Err() = context deadline exceeded (context.deadlineExceededError)

Related to #16381, which was addressed in ctxhttp using,
if err != nil {
	select {
	case <-ctx.Done():
		err = ctx.Err()
	default:
	}
}

@odeke-em, was there a CL for this?

Yap, there is https://go-review.googlesource.com/#/c/24230 but it's been stalled. Also seems like this issue is a duplicate of https://github.com/golang/go/issues/16094.


Added a new ChainConfig property and block reward outputs maturity tests

A new property empty_consensus_reward_maturity_distance has been added to the ChainConfig so that it is possible to specify a non-zero block reward maturity even when the consensus is set to None. This is used for testing.
Added tests for 100% coverage of the
ChainstateRef::check_block_reward_maturity_settings failure cases.

Too late for the review, but I'm thinking if it makes sense to somehow enforce that the empty_consensus_reward_maturity_distance parameter is ignored if ConsensusData isn't equal to None. I suppose it would be an overkill to complicate the config, but I feel like at least an assertion can be added to the Builder::build method.

Too late for the review, but I'm thinking if it makes sense to somehow enforce that the empty_consensus_reward_maturity_distance parameter is ignored if ConsensusData isn't equal to None.

It's kind of the other way around.

@TheQuantumPhysicist
As far as I can see from the reward_maturity_distance function implementation, first we perform a match on ConsensusData, and the value of the empty_consensus_reward_maturity_distance field is only used if it is equal to None. Am I missing something?

@TheQuantumPhysicist As far as I can see from the reward_maturity_distance function implementation, first we perform a match on ConsensusData, and the value of the empty_consensus_reward_maturity_distance field is only used if it is equal to None. Am I missing something?

My point is that ConsensusData should pick the number, not the config. The config is the lowest common denominator in the software. There's no way for it to know what ConsensusData will be without resulting to some kind of double-checking and possibly circular logic. ConsensusData is basically chosen because of NetworkUpgrades that come from chain config. So what's the point in doing that twice?

OK, not I got it.


[Docs] Remove opencv-python-headless dependency by albumentations

Follow https://github.com/open-mmlab/mmpose/pull/833,
By default, installing albumentations by pip has opencv-python-headless dependency even if opencv-python has already been installed. This could cause different opencv versions installed in the environment and lead to unexpected errors.
This PR updates the installation of albumentations to prevent using a wheel distribution of it with opencv-python-headless dependency. See its docs for details.
**Notice, ** now we can't use pip install -v -e .  normally. Need to resolve the error

Add a note in get_started docs, which users can select to install albumentations with or without installing opencv-python-headless

ping @ZwwWayne
I will update Chinese version after you review this PR

Donw

update Chinese version of get started


Add support for proxying connections

We have a request for Http Builder NG to support proxying connections. All of our supported clients have this feature (though of course implemented differently). We should add a proxy property at the request configuration level and then properly use it in the clients.

@cjstehno So I have done the research to implement this for all three clients. However, I have no idea how to test this. Any ideas? All seem fairly simple. We could just set the properties and assume it is correct, which of course is wrong. But, I don't know what the right thing looks like in this case.

I have an idea about how to test it...  I sent you an email and we can talk at the meeting tomorrow.

@dwclark when you have a chance to prototype proxy support on at least one of the clients, let me know - I think this should be fairly straight-forward to test, but I need something to test to be sure. :-)

:+1:

@twogee My intent is to have all of the proxy connections be per-request. What do you mean by "implementation-specific way"? Each of the underlying libraries (java core, apache, okhttp) does proxying in its own way. The idea is for a general proxy configuration to do the right thing in all cases.

@cjstehno I should be able to work on this this week. Vacation is over and the critical bug fix I had at work is complete now.

Sorry for being unclear, I meant to try setting up proxies with the current release. Hope the generic configuration will be available soon. 🙏

@dwclark ok, let me know when you have at least one of them implemented and I will get the support into Ersatz for testing - I know what I need to do and its pretty easy but I want to ensure that what I have lines up with how it will be used. Thanks.

I don't think I need to do anything extra to support testing for proxied connections. You can just use two Ersatz servers (one the proxy and one the "original") then just ensure that the proxy gets your requests and not the real server... here is a test I added to Ersatz to test this (using OkHttp) - it's just a snippet, so missing some general config:
def 'proxied request should return proxy not original'(){
    setup:
    ErsatzServer proxyServer = new ErsatzServer({ autoStart() })
    proxyServer.expectations {
        get('/proxied').called(1).responds().content('forwarded').code(200)
    }

    ersatzServer.expectations {
        get('/proxied').called(0).responds().content('original').code(200)
    }

    OkHttpClient proxiedClient = new OkHttpClient.Builder()
        .proxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress('localhost', proxyServer.httpPort)))
        .cookieJar(new InMemoryCookieJar())
        .build()

    when:
    okhttp3.Response response = proxiedClient.newCall(new okhttp3.Request.Builder().get().url(url('/proxied')).build()).execute()

    then:
    response.code() == 200
    response.body().bytes() == 'forwarded'.bytes

    and:
    proxyServer.verify()
    ersatzServer.verify()
}

If this does not adequately test the proxy stuff, let me know and we can figure out what's missing.

Hurry up with this. :) We also have a need.

@dwclark are you still working on this or do you want me to take it?

@cjstehno I have a partial implementation on a local branch. If I can't finish it up tonight/tomorrow you can take it over. Hopefully I can finish up a few minor issues for a 0.18 release as well.
I feel bad this keeps getting side tracked. My excuses are legit. First there was the need to switch jobs. Now that is fixed, but I have family that are hurricane Harvey refugees in my house and I'm helping out with that. That should be stabilized by this evening and I can get some work done.

@dwclark Kudos to you for helping out David. I'm in Plano @Ericsson

@dwclark I haven't done much either, and I don't have any of your excuses. :-)

@cjstehno
Proxy support is done, pending review, merge, and final build:
https://github.com/http-builder-ng/http-builder-ng/pull/158
I have tested the implementation, but you will notice that the proxy tests are currently ignored. The reason for this is that I had to set up proxies on my dev machine to test them. There are issues we will need to deal with to enable automatic testing and it may not be feasible to have automatic tests in all cases.
Basically we have four cases. The proxy server can either be HTTP level or SOCKS level. The proxied server can be running either HTTP or HTTPS. All possible combos means 4 tests. I have coded all of the tests and can run 3 of them. Here are the states of the combinations:
Proxy SOCKS/Proxied HTTP: Can test this by placing ssh into SOCKS proxy mode. Works fine but requires ssh to be running locally.
Proxy SOCKS/Proxied HTTPS: Same as previous
Proxy HTTP/Proxied HTTP: I have tested this using tinyproxy, an HTTP level proxy. This requires a working installation of tinyproxy. This test is the one we can currently automate if we add functionality to ersatz. Basically ersatz/Undertow has to be put into proxy mode so that all inbound connections are forwarded/proxied to a second running instance of ersatz/Undertow. The code sample you provided above is the opposite test of what we want. response.body().bytes() == 'forwarded'.bytes should be response.body().bytes() == 'original'.bytes to show proxying working correctly. To make the test complete, there should also be an assert that both the proxy and the proxied server were called the exact same number of times.
Proxy HTTP/Proxied HTTPS: Curently Undertow cannot support this configuration. I have noted this in the proxy tests along with the Undertow JIRA issue explaining what they need to support to allow Undertow to support this combo.

Hmm... I thought all we'd need for Ersatz was what was in the example above (for the HTTP proxy). I guess my limited knowledge of proxying has failed me! :-) I think I was more testing that you hit the server you expected and then trusted that the server and underlying clients both did the right thing. Setting up real proxies in the embedded Ersatz undertow was a bit of a pain. It would probably be easier to create a little helper server (in Ersatz I guess) that would be an embedded proxy server to replace tinyproxy... do you think that would work?

Would this help for testing SOCKS (https://github.com/ravn/jsocks/blob/master/jsocks_code1.01/socks/ProxyServer.java)?

@dwclark Sweet David.  Nice Job :)  :1st_place_medal:

@cjstehno That would work for SOCKS testing, provided that project still compiles and works :-)

@dwclark I will give it a try soon and see if we can get more of the tests automated.

This has been implemented in the development branch and will be part of the 0.18.0 release.

@dwclark I have a standalone proxy server component in Ersatz that will be coming with the next release. I will make sure it works with your tests and then use it instead of the external app. I will look into the socks replacement later (created an issue for it).

@cjstehno Thanks, ask me if anything is unclear. Half of the problem with proxies is understanding what they do.


[BUG]-Deprecate LutronQuantum Deivce and point support to plugin.

Describe the bug
The Lutron Quantum is present in Essentials Core but functionality has been moved to a plugin. The EiscBridge is currently not functioning correctly and tosses an exception when selecting scenes via digital input.
Stacktrace
Include a stack trace of the exception if possible.
[12:52:23.000]App 2:[EnviormentBridge] Error in Eisc_SigChange handler: System.ArgumentOutOfRangeException:
Parameter name: index
   at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
   at System.Collections.Generic.List`1.get_Item(Int32 index)
   at PepperDash.Essentials.Core.Lighting.LightingBase.<>c__DisplayClass6.<LinkLightingToApi>b__3(UInt16 u)
   at PepperDash.Essentials.Core.Bridges.EiscApiAdvanced.Eisc_SigChange(Object currentDevice, SigEventArgs args)
   at Crestron.SimplSharpPro.DeviceSupport.BasicTriList.g(CrestronDevice A_0, SigEventArgs A_1)
   at Crestron.SimplSharpPro.CrestronDeviceWithEvents.SendJoinEventData(SigEventArgs args)
   at Crestron.SimplSharpPro.SigCollectionBase`1.NotifyOfSigsNewValue(UShortOutputSig paramSig, eSigEvent paramSigEvent, Boolean paramSigWasAdded)
   at Crestron.SimplSharpPro.DeviceUShortOutputCollection.UpdateValueWithOutIncrementWithEvent(UInt32 index, UInt16 newValue)
   at Crestron.SimplSharpPro.DeviceUShortOutputCollection.UpdateValueWithEvent(UInt32 index, UInt16 newValue)
   at Crestron.SimplSharpProInternal.DeviceBasis.ReadAnalogPacket(UInt32 joinNumber, UInt16 joinValue)
   at Crestron.SimplSharpProInternal.CrestronDevice.HandleIncomingBufferForSpecificDevice(CParsedPacketData IncomingDataStructure)
   at Crestron.SimplSharpProInternal.DeviceBasis.ParseProcessedCresnetData(CParsedPacketData IncomingDataStructure)
   at Crestron.SimplSharpProInternal.CrestronDevice.ParseDataFromStructure(Byte* pIncomingDataBuffer, UInt32 tldmToAppDeviceOrSlotId)
   at Crestron.SimplSharpProInternal.CrestronDevice.CallbackRoutineForSpecificDevice()

Plugin would need to be made public first.
Sent from my iPhone
On Sep 17, 2020, at 11:13 AM, Jason T Alborough<EMAIL_ADDRESS>wrote:

Describe the bug
The Lutron Quantum is present in Essentials Core but functionality has been moved to a plugin. The EiscBridge is currently not functioning correctly and tosses an exception when selecting scenes via digital input.
Stacktrace
Include a stack trace of the exception if possible.
[12:52:23.000]App 2:[EnviormentBridge] Error in Eisc_SigChange handler: System.ArgumentOutOfRangeException:
Parameter name: index
at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
at System.Collections.Generic.List1.get_Item(Int32 index)    at PepperDash.Essentials.Core.Lighting.LightingBase.<>c__DisplayClass6.<LinkLightingToApi>b__3(UInt16 u)    at PepperDash.Essentials.Core.Bridges.EiscApiAdvanced.Eisc_SigChange(Object currentDevice, SigEventArgs args)    at Crestron.SimplSharpPro.DeviceSupport.BasicTriList.g(CrestronDevice A_0, SigEventArgs A_1)    at Crestron.SimplSharpPro.CrestronDeviceWithEvents.SendJoinEventData(SigEventArgs args)    at Crestron.SimplSharpPro.SigCollectionBase1.NotifyOfSigsNewValue(UShortOutputSig paramSig, eSigEvent paramSigEvent, Boolean paramSigWasAdded)
at Crestron.SimplSharpPro.DeviceUShortOutputCollection.UpdateValueWithOutIncrementWithEvent(UInt32 index, UInt16 newValue)
at Crestron.SimplSharpPro.DeviceUShortOutputCollection.UpdateValueWithEvent(UInt32 index, UInt16 newValue)
at Crestron.SimplSharpProInternal.DeviceBasis.ReadAnalogPacket(UInt32 joinNumber, UInt16 joinValue)
at Crestron.SimplSharpProInternal.CrestronDevice.HandleIncomingBufferForSpecificDevice(CParsedPacketData IncomingDataStructure)
at Crestron.SimplSharpProInternal.DeviceBasis.ParseProcessedCresnetData(CParsedPacketData IncomingDataStructure)
at Crestron.SimplSharpProInternal.CrestronDevice.ParseDataFromStructure(Byte* pIncomingDataBuffer, UInt32 tldmToAppDeviceOrSlotId)
at Crestron.SimplSharpProInternal.CrestronDevice.CallbackRoutineForSpecificDevice()
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/PepperDash/Essentials/issues/422, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AENNGSCSAUE6RL4GKSQPBSTSGI7UFANCNFSM4RQXW67Q.

Thats fine.
https://github.com/PepperDash-Engineering/epi-lighting-lutron_quantum/blob/main/PDT.LutronQuantum.EPI/LutronQuantum.cs

@jtalborough if that plug-in supports nuget, let me know and I'll get the ownership transferred to the correct org so it can be public.

@jtalborough Has the Lutron plugin been made public yet?

No not to my knowledge.

On Feb 18, 2021, at 3:21 PM, Andrew Welker<EMAIL_ADDRESS>wrote:
@jtalborough https://github.com/jtalborough Has the Lutron plugin been made public yet?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/PepperDash/Essentials/issues/422#issuecomment-781611225, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAY7PINZXE7AC54JYSZYHJDS7VZFLANCNFSM4RQXW67Q.

Lutron is moved over, deprecate lutron implementation in essentials.


Signal is discarded

Hello,
I actually don't know whether it's bug or user mistake, but my design gets not compiled as expected.
Please see attached source and output files
Everything works OK (even in physical device) but the NMR signal is discarded for an unknown reason.
Thanks for help
JL
module top (
input  A10,A11,A12,A13,A14,A15,NIOR,NIOW,IOW,NMR,
output MW,MR,G,RAM
);

wire [7:0] adr;

reg RAM;

always @(posedge IOW ) begin
    if(adr == 8'hfc) RAM <= 1'b1;
    else
    if(adr == 8'hf8) RAM <= 1'b0;
end

assign MW = ~NIOW;
assign G = (adr == 8'h24) | (adr == 8'h28) | (adr == 8'h2c) | (adr == 8'h30) | ((adr == 8'h00) & RAM & NIOR & NIOW);

assign MR = (~NIOR & ((adr == 8'h24) | (adr == 8'h28) | (adr == 8'h2c) | (adr == 8'h30))) | ((adr == 8'b00000XXX) & ~(NMR | RAM));
assign adr = {A15,A14,A13,A12,A11,A10,2'b00};
endmodule

whatabout.tar.gz

Hi,
The problem is at least partly resolved, the NMR signal was discarded as dependent on the (adr == 8'b00000XXX) comparison.
Probably the "don't care" X's are not supported by the hardware or what ever.
Thanks

If the author of ReGAL wants to investigate it, I'm going to help as I can. But my problem is now solved by design change.
I'm closing the issue.
Thanks