Failing to install helm chart using Helm Provider for Terraform

I am trying to deploy k8s and install Octopus Agent on it using Terraform.

I logged onto our instance of Octopus Cloud and went through the process of adding new deployment target.
I write the following Terraform code (which I reverse engineered from the command lines that Octopus UI gave me):

#provider "helm" {
#  kubernetes {
#    // this part is probably irrelevant; I include it to show I don't have any credentials configured here
#  }
#}

resource "helm_release" "csi_driver_nfs" {
  name       = "csi-driver-nfs"
  repository = "https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/charts"
  chart      = "csi-driver-nfs"
  version    = "v4.6.0"
  atomic     = true
  namespace = "kube-system"
  dependency_update = true
  depends_on = [ azurerm_kubernetes_cluster.example ] // assume this condition has been satisfied and deployment went ahead
}

resource "helm_release" "octopus_tentacle" {
  name       = "test-sandbox-k8s-agent"
  repository = "oci://registry-1.docker.io/octopusdeploy"
  chart      = "kubernetes-agent"

  verify = false
  dependency_update = true
  version    = "1.*.*"
  atomic     = true
  namespace = "octopus-agent-test-sandbox-k8s-agent"
  create_namespace = true

  depends_on = [ helm_release.csi_driver_nfs ]

  set {
    name  = "agent.acceptEula"
    value = "Y"
  }

  set {
    name  = "agent.serverUrl"
    value = "https://xxx.octopus.app/"
  }

  set {
    name  = "agent.serverCommsAddresses"
    value = "{https://polling.xxx.octopus.app/}"
  }

  set {
    name  = "agent.space"
    value = "Default"
  }

  set {
    name  = "agent.targetName"
    value = "test-sandbox-k8s-agent"
  }

  set {
    name  = "agent.targetEnvironments"
    value = "{my-environment}"
  }

  set {
    name  = "agent.targetRoles"
    value = "{my-deployment-tag}"
  }

  set_sensitive {
    name  = "agent.bearerToken"
    value = "xxx"
  }
}

When I run terraform apply on this code, helm_release.csi_driver_nfs gets deployed into my k8s cluster but when deployment gets to helm_release.octopus_tentacle, I get the following error:
│ Error: could not download chart: GET "https://registry-1.docker.io/v2/octopusdeploy/kubernetes-agent/tags/list": unable to retrieve credentials
│
│   with helm_release.octopus_tentacle,
│   on octopus.tf line 12, in resource "helm_release" "octopus_tentacle":
│   12: resource "helm_release" "octopus_tentacle" {
│

I am not sure if using OCI repositories is an issue with helm provider, which is that not an issue with Octopus Agent, but I was wondering if you would consider supporting fetching charts from either github or .tar.gz releases to enable this scenario?

A quick update: I downloaded the latest release to my machine and changed chart location to local disk:
wget https://github.com/OctopusDeploy/helm-charts/archive/refs/tags/kubernetes-agent/1.10.0.tar.gz
tar -zxf 1.10.0.tar.gz

resource "helm_release" "octopus_tentacle" {
  // unchanged code
  chart      = "./helm-charts-kubernetes-agent-1.10.0/charts/kubernetes-agent"
  // unchanged code

this worked. So I don't believe it's an issue with the chart itself. It seems to be specific to how it's being delivered.

another update:
I found this page going through almost my exact scenario: https://octopus.com/docs/infrastructure/deployment-targets/kubernetes/kubernetes-agent/automated-installation
this however fails for me with the same error:
│ Error: could not download chart: GET "https://registry-1.docker.io/v2/octopusdeploy/kubernetes-agent/tags/list": unable to retrieve credentials
│
│   with helm_release.octopus_tentacle[0],
│   on octopus-agent.tf line 40, in resource "helm_release" "octopus_tentacle":
│   40: resource "helm_release" "octopus_tentacle" {
│

What version of the helm terraform plugin are you using?

versions are as follows:
terraform {
  required_version = ">= 1.6.0"

  required_providers {
    helm = {
      source  = "hashicorp/helm"
      version = ">= 2.14.0"
    }
    octopusdeploy = {
      source  = "OctopusDeployLabs/octopusdeploy"
      version = ">= 0.22.0"
    }
  }
}

It looks like that endpoint requires authentication.
This thought has crossed my mind. But I was under impression public Docker registry does not require authentication.

Can you try after authenticating via docker?
Let me see if I can try. Having said that, I don't think it would resolve our issue as the documentation makes no note of authentication being required. So, we expect it to work either way

But I was under impression public Docker registry does not require authentication.

So was I, however that endpoint seems to want to require authentication for some reason.
I had a look in the helm source code and it seems to throw an error when it can't retrieve credentials from the docker registry client
https://github.com/helm/helm/blob/b48f9c9b1dc01f49fdec45624c16a924182fa035/pkg/registry/client.go#L135

I haven't had a chance to try it yet. But this probably will be a case of updating documentation.
For all the people who is unable to use docker registry - I wonder if you could also provide an example of how one would go about pulling the charts off GitHub instead of Docker Hub?

Good question.
We'd need to start pushing the .tar.gz files to the git repo... I'll have to discuss it in the team 🤔

@APErebus I got around to adding creds to my config as follows:
provider "helm" {
  // some k8s auth code here

  registry {
    url = "oci://registry-1.docker.io"
    username = "xxxxxxx"
    password = "xxxxxxx"
  }
}

resource "helm_release" "octopus_tentacle" {
  // unchanged code
  #chart            = "./helm-charts-kubernetes-agent-1.10.0/charts/kubernetes-agent" # commented out
  repository       = "oci://registry-1.docker.io" # added repo
  chart            = "octopusdeploy/kubernetes-agent" # added chart
  // unchanged code

yet still getting the error:
│ Error: could not login to OCI registry "registry-1.docker.io": error storing credentials - err: exit status 127, out: ``
│
│   with provider["registry.terraform.io/hashicorp/helm"],
│   on providers.tf line 14, in provider "helm":
│   14: provider "helm" {

Closing as we have no other reports of issues relating to credentials. I suspect there is an issue here with the terraform execution


beets-play: Add the option to pass the "raw" queried pathes to the player command

I slightly rewrote the play plugin in order to improve the readability and to introduce the "raw" play config option which makes beet simply pass a list of paths to the play command rather than a playlist.
This possibility is useful because vlc doesn't automatically expand (m3u) playlist files added to the (vlc) playlist (other topics about this issue). Which means that if you intend to use beet play several times in a row, either you have to use the --no-playlist-enqueue vlc option which means that playback will be interrupted, either the temporary playlist created by beets will probably never be read and expanded.
This PR bypasses this issue by simply giving the option to pass the files directly as arguments to the configured command, which in this use-case, allows uninterrupted vlc playback while giving every track its chance to shine (yay!).
For this to work I also had to slightly modify beets.util.interactive_open. I'm quite sure I kept it backwards compatible and the only other call, by beet config -e still works perfecly.

Looks like a great addition! Although I'd like to opt for refactoring over compatibility in this case, if that seems reasonable to you.

Seems like a some part of the CI failed because github is having response issues.

I added a commit to refactor interactive_open so that it can only be invoked with a list of arguments and optionally the command to use. All changes were pretty trivial.
However there's an issue in the existing code: interactive_open does not fork a process: python execution stop at the point of the invocation. The problem is that the function play_music does some error catching and cleanup after the player is called, which actually never happen because of this.

Awesome; this is looking good. Could you please add a description of the option to the configuration, at which point we'll merge?
And yes, great point about interactive_open never returning. Let's fix that separately after this is merged. We have two options:

Make the play plugin use a different spawning mechanism (leaving interactive_open for config -e and the like).
Add an optional flag for interactive_open to avoid execing in place.

I'm quite busy lately, but documentation should be small enough to complete it in the coming days.
It could take me some time however to push the tests both for this PR and #1578. It works with me though if you're willing to merge this even without the tests. I'll just try to be persistent enough to propose them in a following PR.

Well I just ended up doing it right now.
Everything ok on your side?

Awesome! Thanks for taking care of this. I added a changelog entry and merged.
And thank you in general for all your contributions lately. I'm adding you as a collaborator in case you see anything you need to maintain directly. Feel free to open PRs still, of course, if you want a code review.

Thank you very much to you! I'll try to keep it up despite the summer break coming to a close.


Line break on list index in long assignment statement

Python version: 3.6.5
Black version: 18.6b4
Does also happen on master: yes
When a list index operation happens on right side of an assignment statement that is over the character limit, black line breaks on the index operation, which IMO is awkward to read.
Before black:
some_list = ["foo"]
this_is_a_really_long_variable_name_just_to_illustrate_the_boundary_condition = some_list[0]

After black:
some_list = ["foo"]
this_is_a_really_long_variable_name_just_to_illustrate_the_boundary_condition = some_list[
    0
]

My personal preference (which is obviously just a preference):
some_list = ["foo"]
this_is_a_really_long_variable_name_just_to_illustrate_the_boundary_condition = \
    some_list[0]

If this is intended behavior, is there a PEP-related reason not to use \ in this case, or is it style choice?

Hey @dgouldin, thanks for reporting!
Yes, this is definitely a bug in black. #330 and #236 talk about this already, so I'll close this out. Feel free to comment on those if you want to add more details.
As for the use of \: @ambv has a lengthy explanation of why black avoids using it here, but maybe this really should be in the readme somewhere.

#392 for the documentation update


add status option to task

create migration and statuses creation logic
add status_id to task

Codecov Report

Merging #203 into master will decrease coverage by 1.08%.
The diff coverage is 0%.

@@             Coverage Diff              @@
##             master     #203      +/-   ##
============================================
- Coverage     70.18%   69.09%   -1.09%
- Complexity      200      204       +4
============================================
  Files            72       73       +1
  Lines           634      644      +10
============================================
  Hits            445      445
- Misses          189      199      +10

Impacted Files
Coverage Δ
Complexity Δ

app/Http/Requests/ValidateTaskCreation.php
100% <ø> (ø)
2 <0> (ø)
:arrow_down:

app/Repositories/StatusRepository.php
0% <0%> (ø)
3 <3> (?)

app/Models/Task.php
66.66% <0%> (-33.34%)
3 <1> (+1)

Continue to review full report at Codecov.

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

@nbrabant thanks for considering to contribute.
Two things I want to mention 1. every pr should have test for corresponding code, 2. pr should be opened against master branch. Check Contribution Guideline for more info.

Erf, i have missed this details, sorry
Is there a way to revoke the PR i do in master, i go to unit test before i PR in dev this time ;)

you don't have to revoke, just change the branch in pr , click edit then you can change the branch from dropdown

Resolves #194


Cannot format and encrypted device

If the user has an encrypted device the installer will fail. The encrypted partitions must first be removed for the  installer to proceed.

Fixed on 6a072e876516e9b12c5ed00c06fa7634b6eb3d0c


[FLINK-32824] Port Calcite's fix for the sql like operator

What is the purpose of the change
This pull request aims to port Calcite's fix for the sql like operator and relates to FLINK-32824.
Brief change log
Modified the JAVA_REGEX_SPECIALS in SqlLikeUtils class.
Verifying this change
Please make sure both new and modified tests in this PR follows the conventions defined in our code quality guide: https://flink.apache.org/contributing/code-style-and-quality-common.html#testing
This change added tests and can be verified as follows:

testSqlLike in ParserImplTest for validatation.
testShowColumnsWithLike in TableEnvironmentTest in table layer for validation.

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, Kubernetes/Yarn, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (no)

@flinkbot run azure

@xishuaidelin could you also create a backport pr for release-1.18?


Enable prompt deployment in watsonx

Introduction
The idea of this PR is to introduce the possibility to use the concept of "Prompt Deployment" in quarkus-langchain4j for the watsonx module. This is a draft because I would like to discuss with you what I have in mind for the implementation and have your help to understand how it can be improved.
Let's start by giving you some more information about "Prompt Deployment", what it is, and how it can be used.
In the watsonx platform there is a possibility to use a component called watsonx.governance. Some specific roles in a team (like AI Engineer and Data Scientist) can work with this platform to improve, test, confront the same prompt with different LLMs and have a lot of information about the different runs to choose the best version to promote.
Once the work it is done, a prompt can be deployed and made available in the watsonx.ai platform using two specific endpoints (different from what we have today):

/deployments/{deploymentId}/text/generation
/deployments/{deploymentId}/text/generation_stream

Each time you want to use a deployed prompt, the only parameters you need to pass are the deploymentId and prompt_variables. This means that for this scenario, an interface annotated with @RegisteredAiService doesn't need the @SystemMessage and @UserMessage because they are stored in watsonx.
How to implement
The idea is to have two new annotations (for the watsonx module only) called @Deployment and @PromptParameter.

@Deployment: This annotation has two different parameters:

value: Unique identifier of the deployment.
chatMemory: prompt_variables used for the chatMemory.

@PromptParameter: Annotation used to correctly build the json body.

Examples
Example 1:
@RegisteredAiService
@Deployment("1") // No memory (It would be great to disable the chat memory using the Supplier<ChatMemoryProvider>)
public interface LLMService {

  public String x(String p);
  // URL: /deployments/1/text/generation
  // BODY: { "prompt_variables": { "p": ${p} }}

  //or

  public String x(@PromptParameter("mytest") String p);
  // URL: /deployments/1/text/generation
  // BODY: { "prompt_variables": { "mytest": ${p} }}

  //or

  public String x(@PromptParameter("mytest") @UserMessage String p, @UserMessage String y);
  // URL: /deployments/1/text/generation
  // BODY: { "prompt_variables": { "mytest": ${p}, "y": ${y}}}
}

Example 2:
@RegisteredAiService
@Deployment(value="2", chatMemory="chat_memory")
public interface LLMService {

  public String x(String p);
  // URL: /deployments/2/text/generation
  // BODY: { "prompt_variables": { "p": ${p}, "chat_memory": [UserMessage, AIMessage, UserMessage...] }}
}

Example 3:
@RegisteredAiService
@Deployment("1")
@SystemMessage("...") //   <- Exception thrown because annotation is not allowed
public interface LLMService {

  @SystemMessage("...") // <- Exception thrown because annotation is not allowed
  @UserMessagge("...")  // <- Exception thrown because annotation is not allowed
  public String x(String p);
}

I started working on this implementation and the code is in the draft... let me know what you think and if it makes sense to continue with this implementation or if I am simply adding complication that is not needed 😆.

I'm rethinking the @PromptParams part and it's not working because I'm trying to map @UserMessage to @PromptParams and those are two different concepts. Maybe there is a solution to fix this behavior (custom implementation of chat memory), but this seems more like a hack to change what is currently done by the core module. I will close this PR because the best way is to try to have something in the langchain4j repository that can help me add this functionality.

I will close this PR because the best way is to try to have something in the langchain4j repository that can help me add this functionality

Makes sense!


Feature/users and groups UI updated as per new design

Features Updates:

User and groups UI modified as per new design- LINK

User side bar section added
Assets tab section added
Groups tab section added
Edit Profile Modal popup added:

Validation added on the fields
Mutation query updated to update the fields

The screen shot are attached below:

@jjoyce0510 @gabe-lyons

Shubham - linting is failing in CI. With these failures:
  1:84  error  Insert `·`  prettier/prettier
  4:53  error  Insert `;`  prettier/prettier
  7:10  error  Delete `·`  prettier/prettier
  8:27  error  Insert `;`  prettier/prettier

✖ 4 problems (4 errors, 0 warnings)
  4 errors and 0 warnings potentially fixable with the `--fix` option.```

You can run `yarn run lint` locally to triage and fix the issues before raising the PR


PR #1: First implementation of network simulator

TODO:

Replace sliding window with Congestion window (CWND)
Calculate package travel time

In this commit I resolved all review issues, except Event's ID (I'll do it and CWND in the next commit).

And also I think it would be nice to devide things connected to packets, events and servers to different files, just for cleaner code and more readability, but it might be a matter of taste. After all, we don't have a style guide or something

@ArtyomPeshkov, thank you for review! I completely agree with you. Code is getting bigger and bigger and we need to keep it readable and clean. Not sending packets by ServerSender is my mistake, it looks really unnatural.
I divided utils.hpp and utils.cpp into several files and move packets sending to method ServerSender::SendPackets() here.

@AntoxaBarin, please, reply to these comments so that we can merge this PR.


Now there is a solution that can be solved in the mixin.

Now there is a solution that can be solved in the mixin, so I fix it.

mixin decorator. https://github.com/microsoft/TypeScript/issues/4881
mixin static property. https://github.com/microsoft/TypeScript/issues/17829

This decorator section looks pretty out of date relative to current decorators, and has merge conflicts. Let's try a new PR that addresses modern decorator usage.


Gossip: Cap Push/Pull Message Processing

right now in processMessages we drain all available messages from the channel and process them in batches
while running gossip live, we found this can lead to a large number of push messages / pull requests (~1k) being processed which then bottlenecks responding to pings which can lead to peers dropping us
we should probably just cap the number of messages types we process per loop and drop extras so we are always responding to pings

Converting this to an issue for posterity. This may have been incidentally resolved at some point.

I've confirmed this does not occur on devnet, after observing half an hour of activity during which no peers dropped us; closing as solved.


Filesystem routing

We're going to use Vite's async globbing and React Location to do this. First of all, we need to locate and import our routes.

[x] Static routes (such as /about/) will be defined by their folder, for example /src/windows/about/Window.tsx
[x] Dynamic routes (default outlets, wildcards, variables, error elements, and pending elements)

[x] Defaults: $default (/src/windows/about/$default/Window.tsx)
[x] Wildards: $wildcard (/src/windows/about/$wildcard/Window.tsx)
[x] Variables: $variable_name (/src/windows/about/$products/Window.tsx)
[x] Errors: $error (/src/windows/about/$error/Window.tsx)
[x] Pending: $pending (/src/windows/about/$pending/Window.tsx)

[x] Any Window.tsx file can have a default export for the element, a named export for the data loader, a named export for metadata, and a named export for noscript content.
[x] When building the route config, we need to build sibling routes in this order (for example, route.children[siblings...]):

[x] $default
[x] static routes
[x] $variable_name
[x] $wildcard

[x] Error and pending routes need to cascade down to deeper routes. Currently they only match their own path segment's element and nothing else.
[x] The root $ route needs to be fill()ed
[x] The route tree should be finalized by hoisting it out of the array (something like const finalTree = tree[0]) and recursively renaming every .value with .path
[x] Pending and error elements must be fixed for root-level loading. Basically just import the files when we import the root component.
[x] A <Filesystem/> will be our full router, and will import and manage the routes. It'll have a basename prop (default /) and a fallback timeout prop (default 500) and minimum fallback time prop (default 500), and inherit the RL <Router/> props
[x] We will use async elements and data loaders with React Location
[x] We will make a custom <Anchor/> element. This element will have a static prop (default false), a preload prop (default Preload.Render (an enum)), a to prop (no default, its the link), a children prop, a maxage prop (default Infinity) and inherit the rest of the <Link/> props.

[x] The  will render a React Location <Link/> if the static prop is false and the to prop does not contain an external url (this can be done by running new URL(to), if it doesnt throw an error its a valid url), otherwise an <a/> will be rendered with the correct href and told to reload on click.
[x] The children will obviously be rendered if they exist.
[x] The correct props will be passed to the <Link/>.
[x] If the preload prop is Preload.Render, the link will preload on render using useLoadRoute(). That data will be passed to the link somehow and its preload prop will be set to false. Look at the last checkbox in this scope for more information.
[x] If the preload prop is Preload.Hover, preload will be set to true in the link being rendered.
[x] If the preload prop is Preload.Never, preload will be set to false in the link being rendered.
[x] If it's not clear by now, preloading will preload both the element and the data loaders. Somehow. (Maybe contribute to React Location and add this to the library?). EDIT: It seems that useLoadRoute() has some fancy magic to pass this data to the route without needing to imperatively do anything. We might just be able to call this and everything will be good. Maximum age should be passed from the maxage prop. We should also make sure there's some way to pass all the information needed to useLoadRoute().
[x] We should figure out some way to make stateful anchors (like RR NavLink)

[x] We should replace the current implementation of async functions being parallel and sync functions being serialized by having all functions be async and functions without any arguments being parallel and functions with arguments being serialized (https://stackoverflow.com/questions/4138012/checks-how-many-arguments-a-function-takes-in-javascript)
[x] Refactor useLoader and useParams to just return an object of the loader data and params instead of passing keys for it to filter by
[x] Add a prefetch component and hook for support with useNavigate
[x] Metadata updating must be handled somehow.

[x] Likely, we'll find the most specific element of a route on render and set the metadata to the meta exported in that object.
[x] Alternatively, the object may call a hook to set its meta, although I'm not sure how that would work and that'll probably just be overcomplicated.
[x] We could maybe limit metadata to be on routes without outlets and then we could just load the meta for each element (itll only load one meta this way, since there's only one outletless component per route), but that might also be overkill.

[x] Metadata will be compiled for all static routes based on their windows.
[x] We also need to figure out compiling for SEO.
[x] We may want to implement data mutations too.
[x] This should be part of octobox-utils, and hopefully octobox-utils can export RL too so it can be self-contained and prevent version mismatching.
[x] Change preload from enum to string
[x] We also need to finish the default error and pending elements.
[x] Add meta page to octotest, anything else to octotest that seems necessary
[x] Make installer
[x] Make unit tests
[x] Obviously, the basename prop should be baked into the installer.
[x] And we need to document it.

Done!


use property visibility of property used to determine mimetype when adding mimetype

There are cases where the property used to determine the mime type differs in visibility from the vertex visibility. We should be using the visibility of the property used to determine mime type and not the vertex visibility.

[ ] joeferner
[x] sfeng88
[x] mwizeman joeybrk372 jharwig

CHANGELOG
Changed: All properties added by MimeTypeGPW should use property visibility instead of the vertex visibility.

@joeferner are you ok with these changes?


LilyGO board. E (4263) camera_demo: Camera probe failed with error 0x20001

Hi
I have this board https://github.com/LilyGO/ESP32-Camera.
The board and the camera works with the original samples provided with the LilyGo.
I carefully set up pins to work with your code, and yet I have "Camera probe failed with error 0x20001"
See the log below. I have added few lines to print actual settigs of the camera right after the error:
`ets Jun  8 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:6288
ho 0 tail 12 room 4
load:0x40078000,len:10180
load:0x40080400,len:6712
entry 0x40080768
I (30) boot: ESP-IDF v3.2.2 2nd stage bootloader
I (30) boot: compile time 13:19:05
I (39) boot: Enabling RNG early entropy source...
I (39) boot: SPI Speed      : 40MHz
I (39) boot: SPI Mode       : DIO
I (43) boot: SPI Flash Size : 4MB
I (47) boot: Partition Table:
I (50) boot: ## Label            Usage          Type ST Offset   Length
I (58) boot:  0 nvs              WiFi data        01 02 00009000 00006000
I (65) boot:  1 phy_init         RF data          01 01 0000f000 00001000
I (73) boot:  2 factory          factory app      00 00 00010000 00100000
I (80) boot: End of partition table
I (84) esp_image: segment 0: paddr=0x00010020 vaddr=0x3f400020 size=0x191d0
I (129) esp_image: segment 1: paddr=0x000291f8 vaddr=0x3ffb0000 size=0x02e9
I (134) esp_image: segment 2: paddr=0x0002c090 vaddr=0x40080000 size=0x0040
0x40080000: _WindowOverflow4 at C:/msys32/home/Sergey_I/esp/esp-idf/compone
nsa_vectors.S:1779
I (136) esp_image: segment 3: paddr=0x0002c498 vaddr=0x40080400 size=0x03b7
I (151) esp_image: segment 4: paddr=0x00030018 vaddr=0x400d0018 size=0x6dc2
0x400d0018: _stext at ??:?
I (311) esp_image: segment 5: paddr=0x0009dc44 vaddr=0x40083f78 size=0x0c5d
0x40083f78: spi_flash_mmap_pages at C:/msys32/home/Sergey_I/esp/esp-idf/com
h/flash_mmap.c:319
I (342) boot: Loaded app from partition at offset 0x10000
I (342) boot: Disabling RNG early entropy source...
I (343) cpu_start: Pro cpu up.
I (346) cpu_start: Starting app cpu, entry point is 0x40081050
0x40081050: call_start_cpu1 at C:/msys32/home/Sergey_I/esp/esp-idf/componen
rt.c:246
I (0) cpu_start: App cpu up.
I (357) heap_init: Initializing. RAM available for dynamic allocation:
I (364) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (370) heap_init: At 3FFB8DB0 len 00027250 (156 KiB): DRAM
I (376) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (382) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (389) heap_init: At 40090554 len 0000FAAC (62 KiB): IRAM
I (395) cpu_start: Pro cpu start user code
I (189) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
E (4263) camera_demo: Camera probe failed with error 0x20001
I (4263) camera_demo: LEDC_CHANNEL_0 0
I (4263) camera_demo: LEDC_TIMER_0 0
I (4273) camera_demo: CONFIG_D0 17
I (4273) camera_demo: CONFIG_D1 35
I (4283) camera_demo: CONFIG_D2 34
I (4283) camera_demo: CONFIG_D3 5
I (4283) camera_demo: CONFIG_D4 39
I (4293) camera_demo: CONFIG_D5 18
I (4293) camera_demo: CONFIG_D6 36
I (4303) camera_demo: CONFIG_D7 19
I (4303) camera_demo: CONFIG_XCLK 27
I (4313) camera_demo: CONFIG_PCLK 21
I (4313) camera_demo: CONFIG_VSYNC 22
I (4313) camera_demo: CONFIG_HREF 26
I (4323) camera_demo: CONFIG_SDA 25
I (4323) camera_demo: CONFIG_SCL 23
I (4333) camera_demo: CONFIG_RESET 15
I (4333) camera_demo: CONFIG_XCLK_FREQ 20000000
`
The settings of the pin is double checked and the same settigs works with different sketch, so physical contact is not and issue here.
This is the schematic of the board https://github.com/LilyGO/ESP32-Camera/blob/master/ov2640_v1.3.pdf
What else can I try?

I didn't try that program,you can take issues to that program


KAFKA-8366: Avoid false positives on offline partition count

In Zookeeper mode, the controller maintains an in-memory state of topicsWithDeletionStarted to decide if OfflinePartitionsCount metric must be incremented/decremented for a TopicPartition on its state transition.
This in-memory state is however not maintained when a controller election happens in the midst of a topic deletion leading to false positives on the OfflinePartitionsCount metric.
This change modifies TopicDeletionManager::init to populate ControllerContext.topicsWithDeletionStarted with topicsIneligibleForDeletion so that the new controller doesn't emit false positive metric.

CC: @soarez @hachikuji

@cmccabe can we consider this for backporting to 3.9 please given it's a long standing bug in ZK mode?

I'm sorry, but I don't think we should do this in 3.9.
The offline partitions metric is at least a decade old, and has always worked this way in ZK mode. Changing the behavior at this point would require a KIP. And probably even then, we'd want to create a new metric rather than changing the behavior of the old one. Topics in "deleting" state really do represent a lack of availability in some sense, since their names cannot be used until the deleting state is cleared (probably manually, by starting stopped brokers.) So some administrators may be relying on the current behavior of this metric to detect that and realize they need to do something about it.
Deleting state doesn't exist in 4.0 / KRaft, so if you agree, we can just close this JIRA with fix version 4.0.


Pls confirm if we can use all three wait approach in the framework (implicit wait, explicit wait, thread.sleep) for automating angularJS application

Hi there,
We are using Protractor 3.6 version in our project to automate the angularJS application. We have master angular application where many standalone angular apps been implemented as iframe.
that is we can access those apps directly hitting the SPA and also through our master integrated application.
Current Approach:
Team is using Implicit wait() with 30 seconds and static wait (may be 60 seconds) in places where implicit wait does not help.
Problem:
Could see inconsistent results every time we execute test scripts and more over execution time is considerably high.
Solution:
We brought up explicit wait added to implicit wait and static wait which improved the consistency and reducing in execution time.
Question:
Is it correct using all three waits ( Implicit wait, explicit wait, thred.sleep) together in the framework.
Note: In few navigation we had to use thread.sleep (). Both implicit wait and explicit wait is not working.

Hi there!
Since it involves usage and debugging (and you haven't used the issue template to indicate otherwise), your question is better suited for StackOverflow or Gitter. Please ask a question there with the 'protractor' tag or post in the Gitter Channel to get help.
From the the getting help section of the README:

Please ask usage and debugging questions on StackOverflow (use the "protractor" tag) or in the Angular discussion group. (Please do not ask support questions here on Github.)

Thanks and good luck!


Gluster ansible

Hi,
I have a kube ansible+multus setup and would like to add the gluster support. I attached /dev/sdb with vagrant and am running the following to get the gluster+heketi installation:
ansible-playbook -i ./inventory/comp.inventory ./playbooks/ka-gluster-install/gluster-in
stall.yml
However, I get the following error on kubemaster:
fatal: [kubemaster]: FAILED! => {"changed": true, "cmd": "./gk-deploy -n gluster -w 900 -g -y", "delta": "0:17:35.138915
", "end": "2018-06-04 19:04:42.523840", "msg": "non-zero return code", "rc": 1, "start": "2018-06-04 18:47:07.384925", "
stderr": "", "stderr_lines": [], "stdout": "Using Kubernetes CLI.\nNAME      STATUS    AGE\ngluster   Active    39s\nUsi
ng namespace \"gluster\".\nChecking that heketi pod is not running ... OK\nserviceaccount \"heketi-service-account\" cre
ated\nclusterrolebinding.rbac.authorization.k8s.io \"heketi-sa-view\" created\nnode \"kubeminion1\" labeled\nnode \"kube
minion2\" labeled\ndaemonset.extensions \"glusterfs\" created\nWaiting for GlusterFS pods to start ... pods not found.\n
Error from server (NotFound): services \"heketi\" not found\nserviceaccount \"heketi-service-account\" deleted\nNo resou
rces found\nError from server (NotFound): services \"heketi-storage-endpoints\" not found\nclusterrolebinding.rbac.autho
rization.k8s.io \"heketi-sa-view\" deleted\nError from server (NotFound): deployments.extensions \"heketi\" not found\nn
ode \"kubeminion1\" labeled\nnode \"kubeminion2\" labeled\ndaemonset.extensions \"glusterfs\" deleted", "stdout_lines":
["Using Kubernetes CLI.", "NAME      STATUS    AGE", "gluster   Active    39s", "Using namespace \"gluster\".", "Checkin
g that heketi pod is not running ... OK", "serviceaccount \"heketi-service-account\" created", "clusterrolebinding.rbac.
authorization.k8s.io \"heketi-sa-view\" created", "node \"kubeminion1\" labeled", "node \"kubeminion2\" labeled", "daemo
nset.extensions \"glusterfs\" created", "Waiting for GlusterFS pods to start ... pods not found.", "Error from server (N
otFound): services \"heketi\" not found", "serviceaccount \"heketi-service-account\" deleted", "No resources found", "Er
ror from server (NotFound): services \"heketi-storage-endpoints\" not found", "clusterrolebinding.rbac.authorization.k8s
.io \"heketi-sa-view\" deleted", "Error from server (NotFound): deployments.extensions \"heketi\" not found", "node \"ku
beminion1\" labeled", "node \"kubeminion2\" labeled", "daemonset.extensions \"glusterfs\" deleted"]}

You'll need to look at the logs of the heketi installation. For some reason it's failing. Unfortunately heketi is a bit difficult to debug because the default is not to log very much.

@leifmadsen @dougbtv What is the procedure to restart kube-ansible/gluster if the node IP changes?

@verizonold I'd setup static IPs so that doesn't happen, and if it does, tear down the environment and redeploy. (Sorry, this isn't intended to be used for production.)

@leifmadsen so what is the procedure to remove gluster from my ansible deployment?
Is glusterfs-endpoints the only place where IP's are referenced?

@verizonold I'm not sure what you mean by "remove gluster from your ansible deployment"?

so I use kube-ansible to deploy kubernetes+multus+flannel....and then do a gluster deployment on top of this deployment. However, I just want to reinstall the gluster components since its now all messed up because of the change in IP of one of my VM's...

@verizonold use playbooks/ka-gluster-install

Closing out an old issue


Provide Image aliases for PS and CLI documentation

We are making many updates to the image aliases in PS and CLI to become in sync with the Portal default images. We are also updating the images to point to images that actually exist.
These docs will help show people what these image aliases are and their values.

@ebolton-cyber
IMPORTANT: When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
Note that the PR must be moved out of draft mode before it can be merged. Also note a that all instances of "Powershell" should be "PowerShell" instead. And headings should be sentence-capped.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

@Sandido - when this PR is ready to merge, take it out of draft mode by selecting the 'Ready for review" button, and ...
@ebolton-cyber - add #sign-off to a comment.
Note that I've made a suggested edit to correct the heading capitalization and the spelling of PowerShell. Commit my suggestions before signing off.


Thank you for making the project active again!

I think it's better to add redirect to here instead of deleting old repository.

Once the project was transferred, @errzey just put in an empty repo with a README pointing to this.
Is that enough? Other than that, not quite sure if I can do a 301.
Thanks!

Thanks for taking this project over @NathanFrench!

Thank you! :)

Thanks mate, really appreciate it!


added "featured" heading above dogecoin buttons in index

the text is still big. make it a paragraph instead

why 2?

now it looks good


TapTweak API for a single script path spending case

Correct me if I'm wrong, but taproot script tree with a for single script path spending condition we will have a merkle root as a hash of that leaf script. In order to construct output key in such cases we can't provide a merkle root value in the existing API in a type-safe way.
https://github.com/rust-bitcoin/rust-bitcoin/blob/60f3a19acd34e1654aed21ec103ef0e34b714e0d/bitcoin/src/util/schnorr.rs#L126

You mean we can't convert TapLeafHash to TapBranchHash but we should be for single-leaf trees?
So we should have something like fn TapBranchHash::with_single_leaf(leaf_hash: TapLeafHash)?

The conversion is possible, but the API is confusing. When I saw that the method doesn't accept leaf hash I had to go to the BIP to double-check how to commit in a taproot tree to a single script path - and it took a while. If each dev will have to do that double-check to ensure that by the conversion he doesn't break consensus rules, I think the API can be called "unefficient".
I propose to change the type to TapNodeHash, which will solve the whole issue.

I think TapNodeHash would be more confusing since it would no longer correspond to the names/tag in the BIP.
For the case of single-script taptrees we should add a code example in the docs.

Maybe tap_tweak(... merkle_root: Option<impl IntoNodeHash>), otherwise why we have that trait?

The single case is indeed confusing. I like KixUnil's fn TapBranchHash::with_single_leaf(leaf_hash: TapLeafHash the most. I think Into might make it confusing to assume those types are interchangeable, there are not. They are only interchangeable if TapTree has only one leaf.
Having an explicit constructor with that name, along with some examples might be the way.

Funnily enough, I need this too. Am I correct that the implementation should be this?
pub fn with_single_leaf(leaf_hash: TapLeafHash) -> TapBranchHash {
    TapBranchHash::from_inner(leaf_hash.into_inner())
}

Re-reading this thread again I think I now understand better what @dr-orlovsky meant by IntoNodeHash and TapNodeHash. And I believe he's right.
What's going on here is the way we use TapBranchHash really should be TapNodeHash. What the BIP calls TapBranch is the name of hashing algorithm not the name of resulting type. There are two ways to correctly construct a hash for a node in the merkle tree: hashing single leaf script with TapLeaf tag or hashing two other node hashes with TapBranch tag.
And just because a value can be computed by two different functions it doesn't make it a different type.
Keeping the name TapBranch actually makes it very confusing to me because my brain processes the word "branch" as "part of a tree". But TapBranchHash is also used to represent whole tree. It feels like my brain has a little segfault every time it tries to process that.
/// A node in a Taproot merkle tree
///
/// This represents a node in the tree that is either:
/// * a leaf - directly hashsing leaf script
/// * a hash of two sub-trees which was created by hashing their root nodes
///
/// Thus, this may represent either whole tree, just a part of the tree (branch) or just the leaf. Note that in the cases a tree contains only one leaf this is both the root and the leaf  which are the same in that case.
// Notice this is not hash newtype! There are only two valid ways of constructing it so the usual interface for hashing arbitrary bytes doesn't make sense.
#[]
pub TapNodeHash(sha256::Hash);

impl From<TapScriptHash> for TapNodeHash {}

impl From<TapNodeHash> for sha256::Hash { /* ... */ }

impl TapNodeHash {
    /// Hashes the nodes using the TapBranch tag
    // notice I used the word from BIP in doc so that people will find it
    fn from_nodes(a: impl Into<TapNodeHash>, b: impl Into<TapNodeHash>) -> Self { /* ... */ }
}

// impl AsRef<$byte_type>, Borrow<$byte_type>, From<$byte_type> for Self
// where $byte_type is [u8] and [u8; 32] as appropriate

Adding this to 0.30 because I think we should fix this rather soon.

One more, a bit crazy-looking idea: when we bump MSRV track the depth in a const generic so that if people statically construct TapNodeHash the 128-limit overflow can be statically checked (well, this actually requires nightly but we could put panic in place of it now and add the bound in the future without changing API for correct usages).

Thinking about this for the second time: after working a bit with Haskell and Idris I start to think about types as a units of semantics - and not as representation of in-memory layouts or outputs of specific algorithms - like H2O is "water" no matter was it made by 2H2 + O2 -> 2H2O or CH4 + O2 -> H2O + C reactions.
Unfortunately, rust is not that specific in following this idiom: you may have u8 representing a plenty of different things, and frequently a type in rust is just about memory layout or output of specific functions. On my opinion, if a semantic may have two different memory layout representations it is still a single type, just a unit/enum with associated data.
So, coming back to the question of taproot tree hashes. In terms of types, we have:

the hash of the leaf;
the hash of a two other nodes ("branch");
the root of the tree can be either of them;
a hash of something which we do not know what it is for sure ("hidden node"). This also may happen in root.

Type representation of the above can be:
struct TapLeafHash(TaggedHash<LEAF_MIDSTATE>);
struct TapBranchHash(TaggedHash<BRANCH_MIDSTATE>);

struct TapUnknownHash(sha256::Hash); // this must not implement `hash::Hash` trait and can't be constructed by hashing some data
enum TapRootHash {
    Leaf(TapLeafHash),
    Branch(TapBranchHash),
    Unknown(TapUnknownHash),
}

@Kixunil thank you for the good words about bitcoin_scripts, but I am not satisfied with them anymore :)
I am working on making bp library a strongly-typed lib inspired by Idris, where each type will have a semantic meaning. I will use the system I recently developed (called "strict encoding"), which allows for any rust type to generate its own formal representation, have that representation formally analysed etc; and use it to have things in that lib like "automatically test if the new release doesn't break any consensus-level serialization rules with the previous release - and detect in which parts".
You are always welcome to join that effort!

You mean things like usize may mean number of any kind of item in an array?

usize is more or less ok, since its semantics is "size of a collection". What's bad is u8 in any struct type or within associated enum data.

Is Depth even meaningful in consensus? My understanding is that it is only used to verify whether a tree is too deep and is not used in the signing algorithm.

You can't have a control block with merkle path size longer than Depth

I'm curious what the differences will be regarding scripts. It seemed bitcoin_scripts is already doing a good job.

I do not like that the types there use Script internally. Script type is really bad since there is no "script" in bitcoin. There are ScriptPubkey, SigScript, RedeemScript, WitnessScript, TapScript, LeafScript - since the semantic meaning of the same bytecode in all of them is different (take for instance 0x50 as the first script byte post SegWit).

I do not like that the types there use Script internally.

Why? Isn't it just a helper implementation detail?

Script is just Vec<u8> or Box<[u8]>. So you do not need another helper implementation detail type since we already have Vec/Box as a helper implementation detail. Script type has no semantic meaning. As a "parser" into opcodes it also doesn't work: try to parse OP_CHECKSIGVERIFY in TapScript context. The opcode parsers must be implemented by specific script types (like TapScript) and not by a Script. I.e. Script type is meaningless.

I am convinced that this should be fixed. I like @Kixunil's suggestion to rename TapBranchHash to TapNodeHash. The algorithm and types are not the same and the name branch is also confusing to me.
Although what @dr-orlovsky says is semantically correct, I believe adding TaprootHash, and UnknownHash will only increase the confusion in an already confusing list of hashes. Everyone will always have to re-learn this every single time they look at the code.

TapLeafHash: Only used in signing algorithms. It is only accidental that TapLeafHash used in the sighash algorithm is the same as the one used in the computing merkle tree hash.
TapNodeHash: Used in the Tree construction algorithm. This uses the tap branch algorithm. I can also stick to the TapBranchHash name if that is convenient. This is same hash that will be used to represent MerkleRoot of tree.

There are other hashes like TapTweakHash and TapSighashHash, but I believe those are not confusing.
Let me suggest another third alternative that I believe might be more user-friendly,

Rename TapBranchHash to TapNodeHash. Do not make this a new hash type as per @Kixunil's suggestion. Have methods
a) TapNodeHash::from_leaf(Script, LeafVersion): Will compute the hash with the TapLeaf tag
b) TapNodeHash::from_nodes(TapNodeHash, TapNodeHash): Applies the TapBranch tag
c) and TapNodeHash::from_hidden_node(sha256::Hash). If you are dealing with Trees you only need to worry about one hash TapNodeHash.
d) TapNodeHash::with_leaf_hash: Will directly use the TapLeafHash given. This is really optional, and I think we should remove this. Users should use TapNodeHash::from_hidden_node instead.

I like the purpose-driven nature of types here:
a) TapLeafHash: used in signing leaves
b) TapNodeHash: Used in tree construction and Merkle root computation.
c) TapsighashHash: Used in sighash
d) TapTweak: used in tweaking
While it might be valuable in some cases to represent that TapNodeHash is really a single leaf or a combination. I think it will only add more confusion down the line. Users that really need to know how the tree structure can store the tree in other ways.

@dr-orlovsky all good points with the current design of the script. However change to unsized script will drastically change this and there it will be much better to have Script<Foo> than replicating the unsized logic (with unsafe conversions between slices, boxes..., AsRef and other things) several times. Especially when some scripts imply others. It'll also reduce duplication of those methods that are actually shared (hashing mainly). So I think you're correct from semantical point considering the current state of things but generics are more practical.

TapTweakHash

Is this one even useful to be public? I feels like it just adds noise to the API but I may be missing something.

another third alternative that I believe might be more user-friendly,

Oh, wow I got pretty much the same idea and was about to suggest this. :D

I think we should remove this.

I'd almost want to remove the whole TapLeafHash type but it acts as a cache if you're signing multiple things with the same leaf hash (I happen to work on a project that does exactly this right now :)) And since we have this already It'd be weird to not have that conversion.
BTW super funny coincidence: I just managed to fix a bug that I only got because I confused leaf script with script_pubkey and since it was causing signature to be invalid it wasn't obvious what's wrong. If rust-bitcoin had script tagging (or if I had known about and used bitcoin-scripts) this wouldn't have happened. Several hours wasted to this ridiculous thing including myself going to sleep at ~5:30 instead of ~4:30. :D

Oh, wow I got pretty much the same idea and was about to suggest this. :D

I will get on implementing this.

BTW super funny coincidence: I just managed to fix a bug that I only got because I confused leaf script with script_pubkey and since it was causing signature to be invalid it wasn't obvious what's wrong. If rust-bitcoin had script tagging (or if I had known about and used bitcoin-scripts) this wouldn't have happened. Several hours wasted to this ridiculous thing including myself going to sleep at ~5:30 instead of ~4:30. :D

Yep, I have also been bit by similar bugs. Adding context to Scripts has really helped us in rust-miniscript, and is something that we should try to replicate here. It might not be that invasive, and maybe I should bite the bullet and start working on it

This all makes sense. But do we actually need separate TapTweakHash? Isn't it just the taptree Merkle root, i.e. TapNodeHash? What's the difference between those two types?
I think it would be nice to have two hash types: TapNodeHash, TapSigHash and TapLeafHash with simple/streamlined conversion of TapLeafHash -> TapNodeHash and internal key tweaked with TapNodeHash.

But do we actually need separate TapTweakHash? Isn't it just the taptree Merkle root

From the doc:

Produces H_taptweak(P||R) where P is the internal key and R is the merkle root.

IOW output_key = internal_key + G * (internal_key || merkle_root)
So as I say, it's an internal thing. Is it worth it making it public? I highly doubt so. Since it itself need the internal key to be produced it can't be used for some caching or anything like that. I also think it probably doesn't need to be a newtype internally. It doesn't help much with the safety and the newtype with all the impls just produces a bunch of extra work for the compiler.

Agree. Seems like no dedicated type (newtype or type alias) is needed at all. What is used is the Merkle root, and the tweak is constructed and applied just inside the function


Param.sfo missing in vpk

Godot version:
3.5.rc5
OS/device including version:
win10 pc/3.65 enso ps vita
Issue description:
when exporting vpk it's not installing through vitashell with error 0xfffffffe. As I looked in vpk missing param.sfo file.
Steps to reproduce:
Editor > Manage editor templates > Install from file > Choose .tpz template downloaded from github
Project > Export > Add preset "PS Vita" > Choose icon (8 bit palette 128x128) > Export project without debug mode
Minimal reproduction project:
Test blank project

I got the same install error and I fixed it by turning on Import ETC2. Following the tutorial on this site
https://homebrew-psvita.blogspot.com/search/label/building_VPK
Next it's turn to: Click on Search and type "ETC2"
Then click on VRAM compression and mark the box "Import ETC2"


flashlight mode

hold up button when powering on

@rogosher Should put this in 1.0 release notes.

ROFL, maybe this should toggle the LED to white.

Putting all three RGB LEDs full on, as well as setting all screen pixels on, would serve as a diagnostic for the LED as well as all the screen pixels. Perhaps you should also light both the TX and TX LEDs.

It's a flashlight, not a diagnostic. :)

It's a flashlight, not a diagnostic. :)

I'm just trying to come up with a better reason to justify it, to address your previous "Too gimmicky?" comment :wink:
"Holding down the UP key during boot will light all the LEDS and turn on all pixels on the display, so you can verify if they're all working properly. It also makes a great flashlight!!"

And this is compiled code that always takes up room

If you use the TXLED1 and RXLED1 macros, I think they only generate a few bytes. And you don't have to use PWM for the RGB LEDs, just a general purpose I/O output LOW, so they each should be similar to TX and RX, except you may have to also set the pins to outputs first.

If you use the TXLED1 and RXLED1 macros, I think they only generate a few bytes. And you don't have to use PWM for the RGB LEDs, just a general purpose I/O output LOW, so they each should be similar to TX and RX, except you may have to also set the pins to outputs first.

Good points.  But I still don't want a hardware test.  That would be something else entirely.  Hardware test sounds like a sketch/demo kind of thing IMHO.

I like the diagnostic test idea. It's also a good point that it might be a nice source file as an example. Merging PR and adding to notes, maybe we need an issue crafted that deals with the creation of a diagnostic/test example.

I may be mistaken, but my testing shows that the setRGBled() call generates over 400 bytes of code, if setRGBled() isn't called within the sketch (which many sketches won't).
If so, as I said above, we should probably change this to using the pins as general purpose I/O, and setting them low using direct port writes, similar to what the TXLED0 and TX_RX_LED_INIT macros do.

If so, as I said above, we should probably change this to using the pins as general purpose I/O, and setting them low using direct port writes, similar to what the TXLED0 and TX_RX_LED_INIT macros do.

File a sep issue, please (or even a PR).  The issue here is analogWrite is  heavy function, but you're right in this cause we don't need to PWM them we can just flip then on for the white.  What has to be done is the pins all set to output then setting them all LOW.

File a sep issue, please (or even a PR).

Determining the proper way to control the RGB LED, via standard I/O at a low level,  looks like an interesting challenge. I'll try to do a PR if no one else does it, but it may not be for a few days. I don't think it's urgent, though. The code works as is. This would just be refactoring.

It's just find the port and bit position and set it to 0.  And you'll have to find the register that lets you set ports to output and make sure you mask it properly also.
Usually you can just read the digitalWrite source and follow it along to the right array to get the right ports, bits, masks, etc.

Yes, it's not difficult, but like you say, it needs a bit of investigation, plus testing and Git , etc.  I've got a few other things on my plate before I get to it, like re-wiring my home built system to be production version compatible including the RGB LED, plus non-Arduboy related stuff. I'll do it eventually if no one beats me to it.
I think it will likely turn out to be best to use the arrays in pins_arduino.h; digital_pin_to_port_PGM[], digital_pin_to_bit_mask_PGM[], etc., and using the #defines we have for the pin numbers; RED_LED, GREEN_LED, BLUE_LED as indexes.

That's where to get the values but you can't use the arrAys. You need just the values. The arrays are part of the reason the compile size is so large. See the issue open on this topic.
Ultimately we need defines for all out specific pin masks, bits, ports. Already started this with speaker stuff in my logo PR.

On Feb 14, 2016, at 12:17 PM, Scott Allen<EMAIL_ADDRESS>wrote:
Yes, it's not difficult, but like you say, it needs a bit of investigation, plus testing and Git , etc.  I've got a few other things on my plate before I get to it, like re-wiring my home built system to be production version compatible including the RGB LED, plus non-Arduboy related stuff. I'll do it eventually if no one beats me to it.
I think it will likely turn out to be best to use the arrays in pins_arduino.h; digital_pin_to_port_PGM[], digital_pin_to_bit_mask_PGM[], etc., and using the #defines we have for the pin numbers; RED_LED, GREEN_LED, BLUE_LED as indexes.
—
Reply to this email directly or view it on GitHub.

That's where to get the values but you can't use the arrAys. You need just the values. The arrays are part of the reason the compile size is so large.

I was wondering about this. It's one of the things I want to take time to investigate. This is a problem when you use a variable as the index, but what if the index is a constant, as would be the case with using the pin number #defines?
The arrays are defined as const uint8_t and the indexes would be constants, so there would be no variables in the expressions. Is the compiler smart enough to recognise this and boil it down to just a single value, instead of actually generating indexing code?
E.g. would these two statements generate identical code?
return digital_pin_to_bit_mask_PGM[RED_LED];

return 0x40;

OK, I just tried it. It looks like the compiler isn't that smart. Indexing the array with a constant generates 8 more bytes.

When you tell the compiler you want an array it gives you an array. Use that array somewhere and you're stuck with the whole thing.  I see where you were going with that logic though and I don't have any good specific reason that type of optimization couldn't be done (if the only detected reference was known at compile time), but yeah I don't think it's that smart yet.
Arduino has some really nice methods but unfortunately a lot of them are SUPER expensive because they aim to deal with ALL the pins/ports/timers on a chip even if we only care about one.

The arrays are defined as const uint8_t and the indexes would be constants, so there would be no variables in the expressions.

Const is still a variable, just a read-only variable.

The use of PROGMEM may be complicating this.


gofmt

Just ran
gofmt -w .

on the project root. That's all.
https://blog.golang.org/go-fmt-your-code

I made this PR with a project going on over at https://github.com/rotblauer/gofmt-att, and it's definitely a work in progress. So if I got something wrong, or this is annoying at all, please file an issue over there and we'll sort it out.

Thanks! I bundled this change into a change that fixes Travis on old versions of Go


How to add role in existing VM deployment?

Recently, we are trying to use java sdk(0.9.2) to create vms.

Firstly, we try to create a vm depoyment  like bellow, it is successful:
private static void createVMDeployment() {
try {
ArrayList rolelist = createRoleList();
	VirtualMachineCreateDeploymentParameters deploymentParameters = new VirtualMachineCreateDeploymentParameters();
	deploymentParameters.setDeploymentSlot(DeploymentSlot.Production);
	deploymentParameters.setName("geodeploy01");
	deploymentParameters.setLabel("geodeploy01-windows");
	deploymentParameters.setRoles(rolelist);

	OperationResponse operationResponse = computeManagementClient
			.getVirtualMachinesOperations().createDeployment(
					hostedServiceName, deploymentParameters);

} catch (Exception e) {
	e.printStackTrace();

}

}

Then we want to add other roles to the deployment, however it fail:
API Document:
https://github.com/Azure/azure-sdk-for-java/blob/v0.9.2/service-management/azure-svc-mgmt-compute/src/main/java/com/microsoft/windowsazure/management/compute/VirtualMachineOperations.java
API Details:
/**

The Update Role operation adds a virtual machine to an existing
deployment.  (see
http://msdn.microsoft.com/en-us/library/windowsazure/jj157187.aspx for
more information)

@param serviceName Required. The name of your service.
@param deploymentName Required. The name of your deployment.
@param virtualMachineName Required. The name of your virtual machine.
@param parameters Required. Parameters supplied to the Update Virtual
Machine operation.
@throws InterruptedException Thrown when a thread is waiting, sleeping,
OperationStatusResponse update(String serviceName, String deploymentName, String virtualMachineName, VirtualMachineUpdateParameters parameters) throws InterruptedException, ExecutionException, ServiceException, IOException, ParserConfigurationException, SAXException, TransformerException, URISyntaxException;

Test: The api tell us we can add , however it's  a update behavior, we can't add a new vm to the deployment, test as bellow:
Code:
private static void updateVMDepolyment() {
try {
// ConfigurationSet:虚拟机配置
ArrayList configurationSetList2 = new ArrayList();
ConfigurationSet configurationSet2 = new ConfigurationSet();
configurationSet2
.setConfigurationSetType(ConfigurationSetTypes.WINDOWSPROVISIONINGCONFIGURATION);
configurationSet2.setComputerName("geovmcomputer02");
configurationSet2.setAdminPassword("1QAZxsw2");
configurationSet2.setAdminUserName("george");
configurationSet2.setEnableAutomaticUpdates(false);
configurationSet2.setHostName(hostedServiceName
+ ".chinacloudapp.cn");
configurationSetList2.add(configurationSet2);
		// OSVirtualHardDisk：操作系统磁盘镜像
		OSVirtualHardDisk oSVirtualHardDisk2 = new OSVirtualHardDisk();
		int random2 = (int) (Math.random() * 100);
		oSVirtualHardDisk2.setName("geovm" + "oshdname" + random2);
		oSVirtualHardDisk2
				.setHostCaching(VirtualHardDiskHostCaching.READWRITE);
		oSVirtualHardDisk2.setOperatingSystem("Windows");
		oSVirtualHardDisk2.setMediaLink(new URI("http://"
				+ storageAccountName + ".blob.core.chinacloudapi.cn/"
				+ storageContainer + "/" + "geovm" + random2 + ".vhd"));
		oSVirtualHardDisk2
				.setSourceImageName("0c5c79005aae478e8883bf950a861ce0__Windows-Server-2012-Essentials-20131018-zhcn");

		VirtualMachineUpdateParameters vmUpdatdParams = new VirtualMachineUpdateParameters();

		vmUpdatdParams.setRoleName("geovmrole02");
		vmUpdatdParams.setRoleSize(VirtualMachineRoleSize.MEDIUM);
		vmUpdatdParams.setProvisionGuestAgent(true);
		vmUpdatdParams.setConfigurationSets(configurationSetList2);
		vmUpdatdParams.setOSVirtualHardDisk(oSVirtualHardDisk2);

		OperationResponse operationResponse = computeManagementClient
				.getVirtualMachinesOperations().update(hostedServiceName, "geodeploy01", "geovmrole01",vmUpdatdParams);

	} catch (Exception e) {
		e.printStackTrace();
	}
}

Errors:
java.util.concurrent.ExecutionException: com.microsoft.windowsazure.exception.ServiceException: BadRequest: Role name changed from geovmrole01 to geovmrole02. Updating the role name is not allowed.
at java.util.concurrent.FutureTask.report(Unknown Source)
at java.util.concurrent.FutureTask.get(Unknown Source)
at com.microsoft.windowsazure.management.compute.VirtualMachineOperationsImpl.update(VirtualMachineOperationsImpl.java:8172)
at azure.project.CreateDeployment.updateVMDepolyment(CreateDeployment.java:99)
at azure.project.CreateDeployment.(CreateDeployment.java:52)
Caused by: com.microsoft.windowsazure.exception.ServiceException: BadRequest: Role name changed from geovmrole01 to geovmrole02. Updating the role name is not allowed.
at com.microsoft.windowsazure.exception.ServiceException.createFromXml(ServiceException.java:206)
at com.microsoft.windowsazure.management.compute.VirtualMachineOperationsImpl.beginUpdating(VirtualMachineOperationsImpl.java:5381)
at com.microsoft.windowsazure.management.compute.VirtualMachineOperationsImpl$11.call(VirtualMachineOperationsImpl.java:4402)
at com.microsoft.windowsazure.management.compute.VirtualMachineOperationsImpl$11.call(VirtualMachineOperationsImpl.java:4399)
We want to know does the version provide the api to add a new role in existing deployment?

From a quick look, it looks like that you're trying to update the existing role through
        OperationResponse operationResponse = computeManagementClient
                .getVirtualMachinesOperations().update(hostedServiceName, "geodeploy01", "geovmrole01",vmUpdatdParams);

To create a new role, you need to provide a different role name:
        OperationResponse operationResponse = computeManagementClient
                .getVirtualMachinesOperations().update(hostedServiceName, "geodeploy02", "geovmrole01",vmUpdatdParams);

It looks like the second param is deploymentName from API description?
@param deploymentName Required. The name of your deployment.
I have create a vm deployment "geodeploy01", a role has created in this deployment called "geovmrole01', I want to add a new role(VM) to the deployment called geovmrole02?

Create Virtual Machine Deployment:
https://msdn.microsoft.com/zh-cn/library/azure/jj157194.aspx
Add Role:
https://msdn.microsoft.com/zh-cn/library/azure/jj157186.aspx
I need to add a new role to the exist deployment, test many times with using getVirtualMachinesOperations().update(...) ,  it looks like it just can update role of a deployment , can't add a new role, however I don't find other api can finish the task? Any suggestions?

Hi @hello-azure
Sorry for the late reply.
There are 3 methods in VirtualMachineOperations.java that I see relevant here:
1.
OperationStatusResponse createDeployment(String serviceName, VirtualMachineCreateDeploymentParameters parameters);

OperationStatusResponse create(String serviceName, String deploymentName, VirtualMachineCreateParameters parameters);

OperationStatusResponse update(String serviceName, String deploymentName, String virtualMachineName, VirtualMachineUpdateParameters parameters);

The first is used to create a deployment. The second one is used to add a role. The 3rd one is used to update a role. I think the 2nd method will fit your need?

Resolved.


Rx variable not update when typing

Hi,
I use a PwdValidator class to show to the user the password requirements.
My class is as below:
class PwdValidator {   bool minChars = false;   bool nbChar = false;   bool upperChar = false; }
Then I have my GetxController which initialize the PwdValidator.
Rx validators = PwdValidator().obs;
Then in my UI widget I have this row:
    `Row(mainAxisAlignment: MainAxisAlignment.start  ,children: [
      Obx(()=> Visibility(child: Icon(Icons.error, color: MyTheme.PrimaryColor),visible: controller.validators.value.minChars)), ],),`

I also have my form which is as below:
      `TextFieldForm(L.Localize('Your password'),
      controller: controller.pwdController,
      keyBoard: TextInputType.text,
      onSaved: (value) {
      controller.input.value.password = value!;
      },
      validator: (value) =>
      ValidatorController.checkPassword(value!, controller.validators),

      ),`

And finally my validator function. It's called on everytyping. But the validators value are refreshed only once I type on the validation button keyboard.
  `if (res == null) {
      if (GetUtils.isLengthLessThan(value, 6)) {
        validators.value.minChars = false;
        error = true;
      } else {
        validators.value.minChars = true;
      }`

It works well when I validate on the keyboard with the green validate button of the keyboard.

But I would like to get it to be changed during my typing.
How can I do it?

I think you also need to add onChanged callback to TextFormField widget, thus will listen the every typing of keyboard.

I did it but I still have the same issue. DO you know how is it possible?

A custom class is only updated using the update method, or by transforming it into an internally reactive class. Read the documentation on Model reactive classes
ex:
validators.update((validator)=> validator.minChars = false)


Compose a relevant ESLint configuration

Currently ESLint configuration extends the airbnb config. We don't currently need some of its features like react/a11y and, moreover, would like to introduce prettier into the project.

PR #96 adds Prettier to the project, but we would also need some non-style ESLint rules.

PR #119 fixes this.


examples/bcc/perf: update example for Linux 4.18

For the example to work with both Linux >=4.18 and older versions, we
need to first determine the syscall name.

That should go upstream, not here.


重置用户密码后是不加密的密码，再次登陆错误

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

哪个版本？

sys_user结构体重写了beforeUpdate beforeCreat 你是没用他的逻辑吧

这是来自QQ邮箱的假期自动回复邮件。你好，我最近正在休假中，无法亲自回复你的邮件。我将在假期结束后，尽快给你回复。


Crash when IntrinsicElements extends Record<string, any>

TypeScript Version:  3.7.x-dev.201xxxxx

Search Terms:

jsx
tsx
Record
extends
IntrinsicElements

Code
/* @jsx D.createElement */

import * as D from "./d";

<a />;

// d.ts
export declare namespace JSX {
  interface IntrinsicElements extends Record<string, any> {}
}

// A *self-contained* demonstration of the problem follows...
// Test this by running `tsc` on the command-line, rather than through another build tool such as Gulp, Webpack, etc.

Actual behavior:
Cannot read property 'type' of undefined.

Playground Link:
Related Issues:

I can't repro this. Does it still crash with typescript@next ? What does your tsconfig look like?

https://github.com/kgtkr/tsx-bug

Thanks, that's perfect.
This has crashed since 2.8, and before that failed to compile with "Can't find name 'React'.".

jsx pragma can only be used after TS2.8


Add support for CDX index files

We are using this lib successfully to edit / insert into a DBF File Type: 0x30 (Visual FoxPro), windows-1252 encoding, that has a corresponding .CDX index file. We can insert into the DB, but we need to somehow update the index afterwards.
Is this already possible? If yes, please let me know how, otherwise, would it be possible to be implemented?
I would definitely help with contribution, but I'm not a go developer, ChatGPT is my friend for this small tool 🙂
Thank you!
R

So far it is not possible to read or write any index files (.idx, .cdx). The library allows to write tables, but is not really made for that. It was implemented mainly for reading.
It is possible to implement the reading and writing of index files. However, this is not trivial and time-consuming.
I'll find out more about the index files and their structure and work something out.  If I actually start with the implementation, it will take a few weeks or months.

For my use-case and hopefully others too, it's enough a way to trigger index rebuild / refresh, no need for reading and editing the index. Maybe that is easier to implement.
I can try to implement something and test with chatgpt if you can provide a boilerplate API that I should follow.
Thank you for taking the time for this!
R

The library does not use a Visual Foxpro executable, which means that it is not possible to trigger reindexing.
Reindexing would have to be implemented in the library.

Hmm, we are retrofiting an old app, maybe that one bundles the foxpro executable or a dll we can use for reindexing?

I can't answer that for you. But I don't think it's that easy. Executing Visual Foxpro commands directly via the cli is not possible, so you can't run any indexing command.


Reorganise source code

This DRAFT PR is aimed at addressing #125.
Goals
Reorganise the source code into sub-directories for

utilities
epi models
latent models
observation models
inference methods

With only abstract types and back-stop dispatches on them in /src. Each implementation of a model indicated by type (e.g direct infection epi model) should have its own file.
Closes #125
EDIT: actually I think this is better scoped to just reorganise, but it will make it easier to sub-task docstrings so therefore contribute to #35  and other issues.

Only effect on documentation is to change the doc template here.
Reason for change is that we are trying to (possibly loosely) follow SciML documentation convention here, and this change to template better matches their style.


feat: add fraction xerc20

@pjenviri Can you help and see why inputting any value of FRACTION < 0.001 is giving a BigNumber error?
Error: invalid decimal value (argument="value", value="5e-7"

it is fixed in this commit: https://github.com/CoinHippo-Labs/connext-bridge/pull/218/commits/38c95f14ded42cd5afef5cad38ec22d3d76650ab

@just-a-node , should we merge this pr?

@just-a-node , should we merge this pr?

Was testing, we are ready to merge.


BUG: Fix group delay singularity check

Reference issue
Fixes #9310
What does this implement/fix?
This moves the check for singular values to the results of the group delay calculation.
Previously, the singularity check was done prior to calculating the group delay. It used a denominator threshold to guess which values would be singular in the result. This caused issues, especially for narrow band filters, where most of the pass band group delay would be wrongly identified as singular. Doing the check for singular values on the results instead of trying to predict them based on assumptions fixes the issue.

@tylerjereddy No answer from the others in the discussion. What do you think?

@guiweber My preference is to wait for a response if possible because it is so far outside my expertise. What I have done though is added the 1.7.0 milestone, which reduces the chances of the change falling through the cracks (we'll do at least one more ping for expert attention before the next release).

Sounds good, thanks!

@e-q @josephernest and @ewmoore -- gentle ping with 1.7.0 branching coming up soon

@tylerjereddy  I don't have enough real expertise on this topic to be able to confirm - my issue was rather based on an observation about the group delay. Maybe a DSP expert can confirm?

This looks like such a small/simple fix--sadly I'll bump the milestone in the absence of expert confirmation here, but let's keep trying to find someone to review and get this in soon..

I think this fix for exact singularities is good, but I lean towards being a little more conservative about removing the warnings for near-singular values. Perhaps we can do both, and keep the test? I.e.
gd = np.real(num / den) - a.size + 1

near_singular = np.absolute(den) < 10 * EPSILON
singular = ~np.isfinite(gd)

if np.any(singular):
    gd[singular] = 0
    warnings.warn(
        "The group delay is nearly singular at frequencies [{0}], setting to 0".format(
            ", ".join("{0:.3f}".format(ws) for ws in w[singular])
        )
    )

if np.any(near_singular):
    warnings.warn(
        "The group delay is nearly singular at frequencies [{0}], "
        "results may be invalid".format(
            ", ".join("{0:.3f}".format(ws) for ws in w[near_singular])
        )
    )

@e-q Keeping the test and adding a warning without zeroing the values would be a good idea. However with the definition of near_singular = np.absolute(den) < 10 * EPSILON I think the wording would need to be different. The group delay itself is not necessarily near singularity, the denominator is. Maybe something like "The filter's denominator is extremely small at frequencies [{0}], around which a singularity may be present"?

@guiweber any chance you could get to this in the next day or so? We branch 1.8.0 on Monday.

@larsoner Hey, sorry this fell through the cracks. I'll try my best to do it this weekend. Cheers!

@larsoner Hey, sorry this fell through the cracks. I'm hoping that with the latest commits it's now good to go.

Failures are just unrelated Azure timeouts so in it goes! Thanks @guiweber


trivial readme with links to other APM repositories

@objectiser could you please review?

@objectiser PR updated. Could you please re-review and eventually merge?

@pavolloffay LGTM :+1:
CI failing due to unrelated npm/gulp issue - Alex is investigating.


Topic_4 Correction

Good job, there were two main points to fix/complete, and the've been addressed:

mocking each interface to test, instead of the class itself (fixed),
According to the item#7, it has been correctly added the UserService class that implements the IUserService interface. (completed).


fix warnings raised for pyodbc

:broken_heart: Tests Failed

the below badges are clickable and redirect to their specific view in the CI or DOCS

Expand to view the summary

Build stats

Build Cause: Pull request #1120 opened

Start Time: 2021-04-28T07:10:51.413+0000

Duration: 20 min 15 sec

Commit: 55a6eb497d6c60fddc0542b4e7870dceaa2f1d15

Test stats :test_tube:

Test
Results

Failed
1

Passed
8575

Skipped
7993

Total
16569

Trends :test_tube:

Test errors
Expand to view the tests failures
Initializing / Test / windows-3.8-none / tests.instrumentation.asyncio_tests.async_elasticsearch_client_tests –

Expand to view the error details
 collection failure

Expand to view the stacktrace
 ImportError while importing test module 'C:\Users\jenkins\workspace\hon_apm-agent-python-mbp_PR-1120\src\github.com\elastic\apm-agent-python\tests\instrumentation\asyncio_tests\async_elasticsearch_client_tests.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
C:\Python38\lib\importlib\__init__.py:127: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
tests\instrumentation\asyncio_tests\async_elasticsearch_client_tests.py:39: in <module>
    from elasticsearch import AsyncElasticsearch
E   ImportError: cannot import name 'AsyncElasticsearch' from 'elasticsearch' (C:\Python38\lib\site-packages\elasticsearch\__init__.py)

Steps errors
Expand to view the steps failures

Shell Script

Took 0 min 7 sec . View more details on here
Description: ./tests/scripts/docker/run_tests.sh python-3.8 elasticsearch-2

Run tests

Took 0 min 16 sec . View more details on here
Description: .\scripts\run-tests.bat

Archive the artifacts

Took 0 min 0 sec . View more details on here
Description: [2021-04-28T07:31:04.104Z] Archiving artifacts
hudson.AbortException: script returned exit code 1

Error signal

Took 0 min 0 sec . View more details on here
Description: hudson.AbortException: script returned exit code 1

Log output
Expand to view the last 100 lines of log output

[2021-04-28T07:30:28.531Z] + python3 -m coverage combine
[2021-04-28T07:31:00.625Z] + python3 -m coverage xml
[2021-04-28T07:31:03.191Z] [Cobertura] Skipping Cobertura coverage report as build was not SUCCESS or better ...
[2021-04-28T07:31:03.192Z]
[2021-04-28T07:31:03.606Z] + curl -sLO https://code.jquery.com/jquery-3.3.1.slim.min.js
[2021-04-28T07:31:03.907Z] + curl -sLO<EMAIL_ADDRESS>[2021-04-28T07:31:04.104Z] Archiving artifacts
[2021-04-28T07:31:04.263Z] Stage "Building packages" skipped due to earlier failure(s)
[2021-04-28T07:31:04.355Z] Stage "Integration Tests" skipped due to earlier failure(s)
[2021-04-28T07:31:04.443Z] Stage "Benchmarks" skipped due to earlier failure(s)
[2021-04-28T07:31:04.639Z] Stage "Prepare Release" skipped due to earlier failure(s)
[2021-04-28T07:31:04.678Z] Stage "Prepare Release" skipped due to earlier failure(s)
[2021-04-28T07:31:04.765Z] Stage "Prepare Release" skipped due to earlier failure(s)
[2021-04-28T07:31:04.851Z] Stage "Prepare Release" skipped due to earlier failure(s)
[2021-04-28T07:31:05.233Z] Running on Jenkins in /var/lib/jenkins/workspace/hon_apm-agent-python-mbp_PR-1120
[2021-04-28T07:31:05.374Z] [INFO] getVaultSecret: Getting secrets
[2021-04-28T07:31:05.423Z] Masking supported pattern matches of $VAULT_ADDR or $VAULT_ROLE_ID or $VAULT_SECRET_ID
[2021-04-28T07:31:06.330Z] + chmod 755 generate-build-data.sh
[2021-04-28T07:31:06.330Z] + ./generate-build-data.sh https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-python/apm-agent-python-mbp/PR-1120/ https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-python/apm-agent-python-mbp/PR-1120/runs/1 FAILURE 1214645
[2021-04-28T07:31:06.330Z] INFO: curl https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-python/apm-agent-python-mbp/PR-1120/runs/1/steps/?limit=10000 -o steps-info.json

:bug: Flaky test report
:grey_exclamation: There are test failures but not known flaky tests.

Expand to view the summary

Test stats :test_tube:

Test
Results

Failed
1

Passed
8575

Skipped
7993

Total
16569

Genuine test errors
:broken_heart: There are test failures but not known flaky tests, most likely a genuine test failure.

Name: Initializing / Test / windows-3.8-none / tests.instrumentation.asyncio_tests.async_elasticsearch_client_tests –

unrelated test failure


Using quality parameter gives "UnboundLocalError" message

LinuxMint 18, kissanime-dl v1.9.1
Using parameter to select download quality gives "UnboundLocalError" message.
for command:
kissanime-dl http://kissanime.to/Anime/Tetsujin-28-go-2004-Dub ~/Videos/Tetsujin28_2004dub --quality=360
command throws error:
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 754, in run
self.__target(*self.__args, **self.__kwargs)
File "/usr/local/lib/python2.7/dist-packages/kissanime_dl/init.py", line 697, in getComplete
dl_pkg = getSingle(dl_link, ses)
File "/usr/local/lib/python2.7/dist-packages/kissanime_dl/init.py", line 681, in getSingle
pure_link = getBlogspotUrls(link, ses, sleepy_time, quality_txt, verbose)
File "/usr/local/lib/python2.7/dist-packages/kissanime_dl/vidextract.py", line 115, in getBlogspotUrls
quality_txt + "']/@value"
UnboundLocalError: local variable 'DOWNLOAD_URL_X_PATH' referenced before assignment
Running same command without "quality" switch works fine.

It was a problem made when I started breaking down the spaghetti code that is this script. Should be fixed in https://github.com/wileyyugioh/kissanime_dl/commit/8bad9d39360a798dbd70106ba3257f745b2c2c41.


Integrate firebase for deployment

Resolved #726 to avoid netlify integration issues in #724
Basically imported from https://github.com/kachick/convert-color-json-between-windows-terminal-and-vscode/blob/3f97620134b8048d227eae08f0dc81ecc357d59e/.github/workflows/firebase-hosting-pull-request.yml

🎉


Add Qt to installation

In order to use capybara-webkit, my machine needs to have Qt on it.

Done: https://github.com/thoughtbot/laptop/commit/87f10cc0dca3d8be67cce7677a0dac494d9b0a4d


Circle CI build is broken by pull/156

#156 broke Circle CI build, because the isolated env running mvn does not have git installed and version.txt.sh fails.
Failed build.
TODO

add it to config yaml
run Circle CI builds also with PRs, not only after merge to master

Fixed: https://circleci.com/gh/Karm/microprofile-starter/84
The problem was that git describe --tags needs at least one tag and the repo sync was not syncing tags.  It is working now.


Add address without protocol

Adding an address without protocol gives
Eg : google.com
Cannot render google.com - "First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object."
Maybe support for building the URL from the address provided ?

This is just in the UI right?

Yeah, I tested only the UI, shall I work on this ?

A PR would be great!

I'll work on this


create_vm index regex

Changed regex because it was only taking single digits, now multiple digits as indexes can be used

This looks good, thank you! 🤠


License?

What's the license for this code? If you publish it without a license, then it's proprietary by default and unusable by others.
If you're not sure, the Choose a License website can probably help.

Hi singingwolfboy, I visited your link, I will add an MIT licence if you like? I am flattered you think it worth it for this project :)
I typically do not licence my projects as I do not understand them and I certainly make no guarantees nor accept any legal liability for them.


Are their any limitations to Container Instances?

It's not clear by this documentation if Container Instances suffer from the same restrictions as Azure App Services and Functions.
I.e. are GDI operations still limited if you run a .net core service worker in Container instances?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 5c00e2ca-c968-c339-c4f2-6acebc9c4f2f
Version Independent ID: 46b156b3-b879-22ba-3194-1655137ae127
Content: What is Azure Container Instances?
Content Source: articles/container-instances/container-instances-overview.md
Service: container-instances
GitHub Login: @dlepow
Microsoft Alias: danlep

We have some quota and limitation documentation for ACI
https://docs.microsoft.com/en-us/azure/container-instances/container-instances-quotas
The FAQ is also useful
https://docs.microsoft.com/en-us/azure/container-instances/container-instances-faq
Container Instances vs PaaS services such as functions and app services are different so different limitations can apply. Can you provide some more examples of what you are looking to understand? Or links to documentation of limitations in the PaaS Services you need to overcome?
Since in ACI you can build your own images there should not be any limitations about .NET core versions as you can install what you need

So what I would expect is a document similar to this: https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox
And if there are no restrictions then to have it say so.  The issue is that the azure functions sandbox now applies to App Service plans as well, so our reporting cannot run because of the GDI+ limitations  listed there.
So we are looking for an alternative without having to spin up a VM.  I'm trying to verify via the documentation that Azure Container instances doesn't have any limitations specifically to do with GDI+ but in general other than quotas.  I can't find anything in the docs that list anything one way or another. At the very least there should be "there are no limitations unlike Azure Functions and App Services"

Got it. Not sure the best way to go about this information. I will assign to the content author to review and see what we might be able to add.

Can we at least find out for sure that there are no such limitations to start?

I don't personally see the link between that project you linked and container instances. So I don't want to comment on anything to be considered a limitation. I will let the author and @dkkapur provide further info on that.

#assign: @dkapur
@JohnGalt1717 - Thanks for the question. I'm including our product team to comment, and then we can evaluate updating the documentation.
In the meantime, can you tell us a little more about your scenario and what base image you would plan for your container image?
And have you attempted a deployment to Container Instances?

I'm using the .net core 2.2 pre-canned image for one project, and nodejs for another (angular)
I have not attempted deployment yet to Azure Container Instances. We're going to full k8s with ACS virtual nodes so I'm in the process of setting that up.
This is a big push to get efficient development happening on every developer's machines in exactly the way it will be in production without having to endlessly rebuild docker containers. So for it's working great, but based on my experience the overhead to get it going would have turned off a lot of people.

Next gotcha: Chrome Debugger. Can't read/write to it's data directory.

Reassigning doc ownership
#reassign: @macolso

Thanks for your dedication to our documentation. Unfortunately, at this time we have been unable to review your issue in a timely manner and we sincerely apologize for the delayed response. The requested updates have not been made since the creation of this issue, and the timeline for resolution may vary based on resourcing, so we've created an internal work item to incorporate your suggestions. We are closing this issue for now, but feel free to comment here as necessary. #please-close


Adding helper functions for time templating

This is related to the other time-related PR: https://github.com/FortnoxAB/alertmanager2hangoutschat/pull/6
This adds two helper functions (hour and minute) to make it easier to template times.
Allowing for something like:
...
Source: <{{ $.Annotations.grafanaDashboard }}?from={{ (now.Add (hour -1)).Unix }}000&to={{ now.Unix }}000|view dashboard>

For the previous iteration I was under the assumption that ?from={{ now.Unix }}-30m would work, but it turns out that relative times are not supported with timestamps. Also the 000 is important specifically for grafana as it expects milliseconds and not seconds.

Once this merges, can we also create a new tag?

@jonaz could I get a review on this?

bump @jonaz

Hi i merged and created a new tag. Sorry for the delay!

Thank you!


About CPU limit

Hi there,
I did some reading online, AWS, Grafana, and Cockroach DB recommends not setting the CPU limit. This is because the "CPU is considered a 'compressible' resource. If our application begins to approach its CPU limits, Kubernetes steps in to throttle our container but will not terminate the pod" (from Google Cloud).
Google Cloud also suggests using a larger or unbounded CPU limit.
Should I consider following Azure's best practice that I must set the CPU limit?
Reference:

AWS
Cockroach DB
Grafana
Google

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 75f24d19-2f92-65db-2228-fcd518182205
Version Independent ID: 6784e3d8-c8f5-511d-989e-63c58caae249
Content: Resource management best practices for Azure Kubernetes Service (AKS) - Azure Kubernetes Service
Content Source: articles/aks/developer-best-practices-resource-management.md
Service: azure-kubernetes-service
GitHub Login: @MGoedtel
Microsoft Alias: magoedte

@ottokyp
Thanks for your feedback! We will investigate and update as appropriate.

@ottokyp
Thank you for your question. The decision to set or not set CPU limits for your containers depends on your specific use case and workload requirements.
As you mentioned, some cloud providers and services recommend not setting CPU limits, while others recommend setting larger or unbounded CPU limits. Azure's best practice is to set CPU limits for your containers to ensure that they do not consume more resources than necessary and to prevent resource contention with other containers running on the same node.
However, it is important to note that setting CPU limits can also have some drawbacks. If the CPU limit is set too low, it can cause performance issues for your application. On the other hand, if the CPU limit is set too high, it can cause resource contention with other containers running on the same node.
Ultimately, the decision to set CPU limits for your containers should be based on your specific workload requirements and performance needs. You may want to experiment with different CPU limits to find the optimal setting for your application.


Add static pdfium instance

Context: #11
https://github.com/ARK-Builders/ARK-Navigator/issues/153
https://github.com/ARK-Builders/arklib-android/issues/7
Thanks to @ajrcarey, this will improve the pdf preview generation dramatically!
https://github.com/ajrcarey/pdfium-render/issues/59

Build fails: https://github.com/hhio618/arklib/actions/runs/3609448838/jobs/6082650366
Probably cargo fmt will resolve this.


[tabular] add tabular regression tests into CI

Issue #, if available:
Some failures are not captured since we didn't add tabular regression as part of our CI, e.g. #2650.
Description of changes:
We're currently have --runslow argument in pytest. Therefore, marking regression as slow would simply add regression tests into regular test cases.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

This code was by an outside contributor in March 2022. While it worked when it was merged, we haven't tested it yet. I think it is better to wait until we refactor benchmarking to revisit enabling/replacing these tests.

Regression tests are generally computational expensive to run in each commit. Deprioritizing this for now.


Automatically integrate new backend plugins & modules into index.ts

Just like with the scaffolding of a frontend plugin, it would be cool to automatically add the new backend plugin to the packages/backend/src/index.ts file.
This PR focuses on that, by enhancing the backendPlugin factory in the packages/cli/src/lib/new/factories/backendPlugin.ts and packages/cli/src/lib/new/factories/backendPlugin.test.ts files. The major changes include the addition of a new backendIndexTsContent constant, modifications to the backendPlugin factory, and updates to the corresponding test cases.
Addition of new constant:

packages/cli/src/lib/new/factories/backendPlugin.test.ts: Introduced a new constant backendIndexTsContent that contains the template for the index.ts file in the backend. This constant is used to mock the content of the index.ts file in the test cases.

Updates to the backendPlugin factory:

packages/cli/src/lib/new/factories/backendPlugin.ts: Added a new task in the backendPlugin factory to include the import and plugin addition in the index.ts of the backend. This task reads the existing content of the index.ts file, identifies the last import and backend.add lines, and inserts the new plugin addition line accordingly.

Modifications to the test cases:

packages/cli/src/lib/new/factories/backendPlugin.test.ts: Updated the test cases to include the new backendIndexTsContent in the mock directory structure. Also, the expected logs and the content of the index.ts file in the assertions have been updated to reflect the new changes. [1] [2] [3]## Hey, I just made a Pull Request!

:heavy_check_mark: Checklist

[ ] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[ ] All your commits have a Signed-off-by line in the message. (more info)

Hi @freben and @benjdlambert,
I noticed that the backendFactory was missing this feature, so I went ahead and added it. If there was a specific reason it wasn't included before, I'd love to hear about it.
Thanks! 😊

thanks, just minor tweaks!

Fixed! Please review whenever you have a moment, @freben
Thanks :)

I have a failing test. Not sure how that one relates to any of my changes though

Yep that's a flaky one. I've retriggered it.


Add local directive to nsupdate file. Fixes #7446.

PR was merged but it didn't get marked as merged. See https://redmine.pfsense.org/issues/7446


System.NotImplementedException: Cannot emit unexpected expression of type WildcardImportInstanceFunctionCallExpression

Bicep version
v0.23.1
Describe the bug
If you use an exportable function or variable directly in another function call, or a resource name, it will throw System.NotImplementedException: Cannot emit unexpected expression of type WildcardImportInstanceFunctionCallExpression.
To Reproduce
Steps to reproduce the behavior:
import * as naming from '../naming-conventions.bicep'

resource deploymentSlot 'Microsoft.Web/sites/slots@2022-09-01' = {
  name: naming.createChildResourceName(applicationName, deploymentSlotName)
  location: azureRegion
  properties: {
    serverFarmId: serverFarmId
  }
}

Or:
import * as naming from '../naming-conventions.bicep'

var functionName = naming.createResourceNameWithDashes(
  organizationName,
  domainAbbreviation,
  naming.resourceShortCodes.functionApp.shortCode,
  serviceName,
  environmentAbbreviation,
  azureRegionSanitized,
  instanceNumber
)

Then check your bicep with az deployment group what-if.
Additional context
There is a workaround:
import * as naming from '../naming-conventions.bicep'

var useVariableForWorkAround = naming.createChildResourceName(applicationName, deploymentSlotName)

resource deploymentSlot 'Microsoft.Web/sites/slots@2022-09-01' = {
  name: useVariableForWorkAround
  location: azureRegion
  properties: {
    serverFarmId: serverFarmId
  }
}

This works in both cases.

@charper-work could you try and reproduce this with the latest nightly release? It's possible that this has already been fixed by #12575 - in which case it'll be part of the next release.

Is this resolved in v0.24.24?

@charper-work can you reproduce this in the latest release?