Proposal for first public foundation team npm module

Context
This is the first public foundation team npm module.

module name: @envato-marketplace-foundation/market-api-gateway-js
module owner: @envato-marketplace-foundation

Goal of this module
This module is a thin wrapper of https://build.envato.com/api, which aims to provide an easy to use api inside JavaScript project. It will be first used in market-hub project as test, and then used in market-shopfront project(the main user of this module).
Please check more details and usage information in the homepage.
Currently this module runs natively on nodejs@v4 without any compiler. In the near future if we want it to run inside browser, we may introduce browserify or webpack to compile the source code to ES5 for browser that does not support the new feature in ES6. However this will be next step as it's mostly an internal module which may only used in the customer group.
Even though more of an internal module rather than for public use, this module should be a good way to demonstrate

the npm workflow inside JavaScript based project

how to write npm modules
how to install scoped npm modules
how to publish npm modules

how to share code between projects, teams, companies
how to improve and force code quality through open source code
how to separate concern out of potentail monolith code
how to manage and maintain open source JavaScript project
prepare for more shareable stuff(code, design, documentation)
prepare for private npm stuff

Pre-publish check list
Check list before publishing to npm

[x] make Github repo public
[x] register envato-marketplace-foundation user with<EMAIL_ADDRESS>[x] share the npm user password to 1 password for team
[x] add devs to collaborator so we can publish with our own npm account
[x] publish to npm public registry
[x] use module in market-hub
[x] use module in market-shopfront

FAQ
Why not private npm module?

Private npm module is not free and charged by per user, could cost lots of money
Lack of experience on manage private npm modules
Need a way to manage tokens for local dev, CI setup, deployment process

Why not use Github instead of NPM?

Standard and recommended way to manage NPM modules
todo

Done. Closing...


[Multiple Pages - Audio][Add fade in/out on page changes that trigger new track to play]

Some of the pages that trigger audio loops can cause an abrupt change in the sound.  Low priority, but adding a fade out/fade in on pages that trigger new music loops would be a nice small QOL change.

[ ] adding method to fade audio out gradually

https://johnleonardfrench.com/how-to-fade-audio-in-unity-i-tested-every-method-this-ones-the-best/ <- current resource

@CCrawfordUOP I have a script called FadeAudio.cs in the audio_implementation branch where I've begun implementing this. It takes a method from the ContinueAudio.cs to run the Coroutine.

@CCrawfordUOP I have figured out how to do this by initializing the audio source with a clip on start with a separate script, then adding a 3 line if check that sees if the suggested new track is different than the one that is currently preloaded. I'll be making changes to scenes where I force audio to start anew.


Refactoring of documentation to rST and reorg autodocs

I may need to update our RTD project settings due to path change.
Here's what the updated rtfd result looks: https://petastorm.readthedocs.io/en/docs_refactor/

Codecov Report

Merging #123 into master will not change coverage.
The diff coverage is 0%.

@@           Coverage Diff           @@
##           master     #123   +/-   ##
=======================================
  Coverage   82.66%   82.66%
=======================================
  Files          50       50
  Lines        2625     2625
  Branches      388      388
=======================================
  Hits         2170     2170
  Misses        390      390
  Partials       65       65

Impacted Files
Coverage Δ

examples/hello_world/pytorch_hello_world.py
66.66% <ø> (ø)
:arrow_up:

setup.py
0% <0%> (ø)
:arrow_up:

petastorm/workers_pool/process_pool.py
95.55% <0%> (-0.75%)
:arrow_down:

petastorm/workers_pool/thread_pool.py
89.07% <0%> (+0.84%)
:arrow_up:

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 0fe1f60...1d9beef. Read the comment docs.

I redid my commits so that the 4 file renames are done first. This way, a reviewer can look at just the MD->RST commit to look at changes for the 4 .md files (e.g., https://github.com/uber/petastorm/pull/123/commits/2513a99ab687808c383678b03b367b564ec6f48a ).


perlPackages.DevelNYTProf: 6.06 -> 6.10

Motivation for this change
Run-of-the-mill bugfixes (see https://metacpan.org/release/JKEENAN/Devel-NYTProf-6.10/view/Changes), but above all, fix the build errors with Perl 5.34 (https://hydra.nixos.org/build/147941026).
Along the way, nix-generate-from-cpan picked up a new buildInputs which I added without investigating why.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[X] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Relase notes)

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

[X] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 131862 at ca501b30 run on aarch64-linux 1

2 packages built successfully:

perl532Packages.DevelNYTProf
perl534Packages.DevelNYTProf


2d Legacy - close vulnerabilities and more debug checks

While adding more debug checks to legacy renderer, I closed 2 types of vulnerabilities:

TYPE_PRIMITIVE would previously read from uninitialized data if only specifying a single color
Other legacy draw operations would fail in debug AFTER accessing out of bounds memory rather than before

Many calls to glBufferSubData are wrapped in a safe version which checks for out of bounds and exits the draw function if this is detected.
Notes

While trying to debug the rainbow issue I've continued to go through the legacy renderer with fine toothed comb looking for vulnerabilities
When I've done all the checks I can think of and moved out of WIP, it could do with a good looking over by @clayjohn in case of typos etc
I was a bit torn about doing all the checks longhand for the glBufferSubData calls... however wrapping them and making them less verbose means there is less opportunity for error and they are easier to change en masse, should we desire to make the checks release as well as debug, for example.

For reference, on first review I was a little skeptical about wrapping the glBufferSubData. But on second review I think it makes sense. it is currently an area where we are prone to mistakes, so it can really benefit from the extra wrapper.

Thanks!


Add irfft, overlap_sequences and istft

Similar to #717
This PR mainly implements istft. This allows us to reconstruct sequences from the frequency domain.
Notes: some clean up (e.g. a to x, jax.numpy to jnp) included, I can revert it if it is not necessary
# output
# lr means librosa's output
# needs `center=True` to get reasonable result
ori. vs. lr RMSE: 3.663534e-09
ori. vs. np RMSE: 4.223074e-09
ori. vs. jax RMSE: 8.257622e-09
ori. vs. tf RMSE: 1.0522875e-08
ori. vs. torch RMSE: 8.910108e-09

Reconstructed results:

A standalone script:
(needs pip install librosa matplotlib)
import jax
import librosa as lr
import matplotlib.pyplot as plt
import numpy as np
import tensorflow as tf

from keras_core.backend.jax.math import istft as jax_istft
from keras_core.backend.numpy.math import istft as np_istft
from keras_core.backend.tensorflow.math import istft as tf_istft
from keras_core.backend.torch.math import istft as torch_istft

# load waveform from librosa
waveform, samplerate = lr.load(lr.util.example("trumpet"))
waveform = waveform.astype(np.float32)
n = len(waveform)

# produce stft output from librosa with random parameters
sequence_length = 234
sequence_stride = 123
fft_length = 567
length = n
center = True

lr_stfts = lr.core.stft(
    waveform,
    hop_length=sequence_stride,
    win_length=sequence_length,
    n_fft=fft_length,
    center=center,
)
lr_stfts = np.transpose(lr_stfts)
real_out, imag_out = np.real(lr_stfts), np.imag(lr_stfts)

# reference istft output from librosa
lr_out = lr.core.istft(
    np.transpose(lr_stfts),
    hop_length=sequence_stride,
    win_length=sequence_length,
    n_fft=fft_length,
    length=length,
    center=center,
)
lr_rmse = np.sqrt(np.mean((lr_out - waveform) ** 2))
print("ori. vs. lr RMSE:", lr_rmse)

# compute istft with keras-core
arguments = {
    "sequence_length": sequence_length,
    "sequence_stride": sequence_stride,
    "fft_length": fft_length,
    "length": length,
    "center": center,
}
np_out = np_istft((real_out, imag_out), **arguments)
tf_out = tf.function(tf_istft, jit_compile=True)(
    (real_out, imag_out), **arguments
).numpy()
torch_out = torch_istft((real_out, imag_out), **arguments).numpy()
jax_out = jax.jit(lambda x: jax_istft(x, **arguments))((real_out, imag_out))
jax_out = np.array(jax_out)

# RMSE between all backends and librosa
np_rmse = np.sqrt(np.mean((np_out - waveform) ** 2))
print("ori. vs. np RMSE:", np_rmse)
jax_rmse = np.sqrt(np.mean((jax_out - waveform) ** 2))
print("ori. vs. jax RMSE:", jax_rmse)
tf_rmse = np.sqrt(np.mean((tf_out - waveform) ** 2))
print("ori. vs. tf RMSE:", tf_rmse)
torch_rmse = np.sqrt(np.mean((torch_out - waveform) ** 2))
print("ori. vs. torch RMSE:", torch_rmse)

# visaulization
fig, ax_dict = plt.subplot_mosaic(
    [["A", "LR", "B", "C", "D", "E"]], figsize=(30, 6)
)
ax_dict["A"].set_title("Original Waveform")
ax_dict["A"].plot(waveform)
ax_dict["LR"].set_title("Librosa")
ax_dict["LR"].plot(lr_out)
ax_dict["B"].set_title("NumPy")
ax_dict["B"].plot(np_out)
ax_dict["C"].set_title("JAX")
ax_dict["C"].plot(jax_out)
ax_dict["D"].set_title("TensorFlow")
ax_dict["D"].plot(tf_out)
ax_dict["E"].set_title("Torch")
ax_dict["E"].plot(torch_out)
plt.tight_layout()
plt.savefig("output.png")

Thanks for the PR!
You are implementing irfft using the built-in implementation in TF, JAX, torch and numpy, but not istft. However, istft also has a built-in implementation in TF, JAX (jax.scipy), torch, and scipy (but not numpy). Can we use that instead (since it would be simpler)?
Meanwhile, overlap_sequences doesn't seem to be a standard API -- why do we need it?

However, istft also has a built-in implementation in TF, JAX (jax.scipy), torch, and scipy (but not numpy). Can we use that instead (since it would be simpler)?

After a tons of trial and error, I have managed to implement stft and istft as the following table:
Goal: make stft and istft have the almost same output compared to librosa

backend
stft
istft
note

numpy
scipy.signal.stft
custom implementation
I can't make scipy.signal.istft match the librosa's output

jax
jax.scipy.signal.stft
custom implementation
the reason is the same as numpy

tf
tf.signal.stft
tf.signal.inverse_stft

torch
torch.stft
custom implementation
torch.istft is buggy and I failed to match the librosa's output

ref:

runtime error of torch.istft: https://github.com/pytorch/pytorch/issues/91309

Meanwhile, overlap_sequences doesn't seem to be a standard API -- why do we need it?

I have removed it.
Now, _overlap_sequences is only used in the backend.*.math.

@fchollet
The reconstruction error in numpy and jax has increased after the new implementation, but it should be still acceptable.
# from the standalone script
# lastest implementation
ori. vs. lr RMSE: 3.663534e-09
ori. vs. np RMSE: 9.218377e-09  <= before: 4.223074e-09
ori. vs. jax RMSE: 9.20385e-09  <= before: 8.257622e-09
ori. vs. tf RMSE: 1.0522875e-08
ori. vs. torch RMSE: 8.910108e-09

In general anything in the vicinity of float32 precision is perfectly acceptable.


chore: reduce bundle size

Description

This PR includes:

remove find-up, replaced with package-manager-detector
replace fast-glob with tinyglobby
replace @jsdevtools/ez-spawn with tinyexec

Right now ni build is failing. ni tgz file from 107KB to 78KB
We should remove agent.ts module, not being used. (agent module re-exporting pm detector stuff)
Linked Issues
Additional context

@userquin
Hi! Thank you for creating this PR.
Also, it is a good idea to replace kleur with yoctocolors

@benmccann suggests picocolors (cjs only), the size is a little smaller than yoctocolors (esm only).

Created a pr for picocolors

@userquin I think yoctocolors is better because yoctocolors is tree-shakable

don't merge yet, I'm going to include yoctocolors and cleanup

There is no difference using picocolors or yoctocolors (tgz file):

on left picocolors, on right yoctocolors

@userquin Thanks

I'm going to use tinyrainbow, we're using it in Vitest 😜

You should stick to picocolors imo and open issues upstream if you think there's a limitation
It has been adopted by most other large projects (and more to come). Think it is better to align than take yet another version of the same algorithm/implementation


browser.getUI5Version is not a function

Describe the bug
Error raised on execution of injectUI5()
To Reproduce
Steps to reproduce the behavior:
    await browser.url(baseUrl)
    const { default: _ui5Service } = require("wdio-ui5-service")
    const ui5Service = new _ui5Service()
    await ui5Service.injectUI5()

Expected behavior
The spec to run successfully
Logs/Console Output
TypeError: browser.getUI5Version is not a function
    at C:\Users\myUser\git\myProject\node_modules\wdio-ui5-service\src\lib\wdi5-bridge.ts:104:38

Runtime Env (please complete the following information):

wdi5/wdio-ui5-service-version:  "0.9.0-rc1"

hm, as we're constantly running a test that explicitly does exactly what you're describing (https://github.com/js-soft/wdi5/blob/main/examples/ui5-js-app/webapp/test/e2e/ui5-late.test.js), I wonder whether the app that you're serving and trying to run wdi5 on is actually a UI5 app at all?

🤣 yes it is. The flp home page is already loaded and displayed before injectUI5 is being invoked.
Until this point wdio methods are used to serve the login credentials.
Just fyi, I have the config baseurl and wdi5.url as empty string.

Hi, related to https://github.com/js-soft/wdi5/issues/122 ?

Thanks @dominikfeininger, however I followed everything as you mentioned. In fact the same code works in  0.8.1v and fails in 0.9.0-rc1v

Can you please change your wdi5 loglevel to verbose I guess you can then see this message: open url with fallback '#' (this is not causing any issues since its is removed for navigation) . Which causes the trouble with the FLP.
If not please provide the full verbose log.

Yes I can view this message. Is the error because this behaviour. I was about to create another issue about why does this message is being raised when I have set the config param skipInjectUI5OnStart to true.
In my test, I don't wish to start the test with any url as such. At one point of time the url will be passed/populated dynamically from the code. Until then I would like to keep the chrome driver's url empty.
This was possible with previous versions.

Hi @dominikfeininger,
You are correct.
When I provide a non empty wdi5.url, then the test passes successfully.
However, when kept empty, I encounter errors like

open url with fallback '#' (this is not causing any issues since its is removed for navigation)
browser.asControl is not a function
'browser.getUI5Version is not a function'

As a workaround, I keep the parameter wdi5.url non-empty.
However, it would be really appreciated if this limitation can be resolved.

As a workaround, I keep the parameter wdi5.url non-empty. However, it would be really appreciated if this limitation can be resolved.

Since you've contributed before to wdi5 (thanks again 🙌 ), why not give this a shot via a PR 🤗 ?


Adding minimal demos for various client api to write data into Greptime database

We now have various protocol supported in HTTP api, Here are some entry paths for read and/or write:
/v1/sql
/v1/promql

/v1/influxdb/write
/v1/influxdb/api/v2/write

/v1/prometheus/read
/v1/prometheus/write

/v1/prometheus/api/v1/query
/v1/prometheus/api/v1/query_range
/v1/prometheus/api/v1/labels
/v1/prometheus/api/v1/series
/v1/prometheus/api/v1/label/:label_name/values

/v1/oltp/v1/metrics
/v1/oltp/v1/traces

For simple protocols like influxdb, a curl command would be enough to actually for users to follow up and write data into out database; However for protocols like OTLP, a step by step example of modifying docker config using Greptime endpoint, running OTLP official docker image and be able to write data into the database would be much more straight forward than just showing how to config Greptime endpoint.
For example, save the following code as config.yaml
# config.yaml
receivers:
  hostmetrics:
    scrapers:
      cpu:
      disk:
      filesystem:
      load:
      memory:
      network:
      process:
      processes:
      paging:

exporters:
  otlphttp:
    endpoint: http://localhost:4000/v1/otlp
    compression: none
    tls:
      insecure: true

extensions:
  health_check:
  pprof:
  zpages:

service:
  extensions: [health_check, pprof, zpages]
  pipelines:
    metrics:
      receivers: [hostmetrics]
      exporters: [otlphttp]

And run docker run --rm --network host -v ./config.yaml:/etc/otelcol/config.yaml otel/opentelemetry-collector will start an exporter and write metrics data using Greptime's HTTP OTLP metrics api.

We currently add demos covering /v1/influxdb/write and /v1/influxdb/api/v2/write.
In the following demos we'd covering Prometheus usages, we will cover /v1/prometheus/xxx.
SQL and PromQL query is included in every demo when we are analyzing the data. I suggest we can add some real-world scenarios to guide users how to write queries and how to migrate from other query slang like InfluxQL. We have a good start at https://docs.greptime.com/user-guide/migrate-to-greptimedb/migrate-from-influxdb#query-data. May or may not it should be part of our demos.


mimic will fail to break code containing unicode characters

(…) qui in gladio occiderit, oportet eum gladio occidi.
// The Apocalypse of John, 13, 10

mimic will fail to "break" code containing unicode characters.
# coding: utf-8

print 'aaa'
print 'ąęść'
print 'bbb'

$ cat ~/Desktop/bad.py | ./mimic
# coding: utf-8

print 'aaa'
print 'Traceback (most recent call last):
  File "./mimic", line 273, in <module>
    main()
  File "./mimic", line 267, in main
    pipe(options.chance)
  File "./mimic", line 242, in pipe
    out.write(c)
  File "/usr/lib/python2.7/codecs.py", line 351, in write
    data, consumed = self.encode(object, self.errors)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 0: ordinal not in range(128)

This is a valid concern. Currently, the lookup code is simple - ASCII characters are identified by range, and then mutated. A more proper implementation would be

Store the homographs as a tuple of sets
Store a superset
Rather than looking for the ASCII range, look for any superset membership
If a member, mutate accordingly

I'll look at doing this some time in the near future.


[BUG] Get-PnPProperty randomly returning (400) Bad Request error

Reporting an Issue
We have a script that pulls information from SharePoint Online lists, and uses $oItem = Get-PnPProperty -ClientObject $item -Property FieldValuesAsText to get text values for outputting into a CSV file.
This code executes dozens of times iterating over items in the list, but will randomly throw a (400) Bad Request error.
As a note, this happened to a coworker as well when using Get-PnPEventReceiver from their local machine, but re-executing the code did not throw the (400) Bad Request error like the first time.
I have looked for any system outages/maintenance/etc. from Microsoft and Azure DevOps that would impact this but have not found anything, so I figured I would start here with a raised item and see how we go.
Expected behavior
The line of code will execute the same for each item iteration without throwing the error, or at least be consistent with a thrown error.
Actual behavior
The (400) Bad Request error is thrown randomly over multiple executions of the exact same code, over the exact same list and items. Note that there is no consistency to which item it throws the error on.
Get-PnPProperty : The remote server returned an error: (400) Bad Request.
At D:\a\r1\a\_EBC SPFx\UtilityScripts\DataExportForPowerBI.ps1:214 char:24
+ ...    $oItem = Get-PnPProperty -ClientObject $item -Property FieldValues ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : WriteError: (:) [Get-PnPProperty], WebException
    + FullyQualifiedErrorId : EXCEPTION,PnP.PowerShell.Commands.Base.EnsureProperty

Steps to reproduce behavior

Set up an Azure DevOps Release Pipeline
Make an inline PowerShell step and add code that iterates over items in a list and get the list item properties with $oItem = Get-PnPProperty -ClientObject $item -Property FieldValuesAsText (assign to variable optional)
Execute release pipeline job a number of times until the error occurs

What is the version of the Cmdlet module you are running?
1.5.0 PnP.PowerShell - Running on Azure DevOps Linux Release Pipeline
Which operating system/environment are you running PnP PowerShell on?

[ ] Windows
[ ] Linux
[ ] MacOS
[ ] Azure Cloud Shell
[ ] Azure Functions
[x] Other : Linux on Azure DevOps Release Pipeline

We've found that this issue may be related to Microsoft not supporting TLS 1.0/1.1 anymore (1.1 as of late March 2021) where the Azure DevOps hosted agent VM might be defaulting to unsupported TLS protocols causing bad requests. We've implemented a forced use of TLS 1.2 and 1.3 (available on the MS hosted VM) as of last night (29/04/2021) and will see how that goes.

Looks like it hasn't resolved the issue. Still occurring, but now happening intermittently with Get-PnPListItem

We are also experiencing some random Bad Request (400) errors but on the Apply-PnPProvisioningTemplate cmdlet. We use Azure Automation Powershell Runbook to provision sites and apply XML templates (using Apply-PnPProvisioningTemplate). This procedure runs for some time now, but in the last couple of weeks, we start getting some random Bad Request (400) when applying templates. It does not happen every time a template is applied but more randomly. When restarting the Powershell Runbook, the templates are applied correctly again without an error.

Yeah it has spread for us into Get-PnPTerm as well, and even has happened during a co-workers powershell script that updated some list items.
It's good to know others have been experiencing this too! All of my google searching shows old items from early 2020 and before.
I've had to resort to adding retry code to ensure the failing instance complete.

Yes, we were also thinking about some Retry logic to solve the problem. But I would like to know what the real problem is. Here I found another post from somebody experiencing the same issue (I also commented on that post): https://stackoverflow.com/questions/67234860/web-exception-while-calling-clientcontext-web-applyprovisioningtemplate-in-sha

I haven't been able to find anything on this yet, or a resolution for it, but the issue seems to have not occurred for over a week now so maybe it was quietly fixed in the back end somewhere.
For those interested here is the PowerShell PnP retry function and usage!
Credit
I found the following article for a retry command and modified it for my use: https://ridicurious.com/2019/02/01/retry-command-in-powershell/
Function breakdown
Parameters:

ScriptBlock - The code to pass into the retry function
RetryCount - The number of times the command is retried, default is 3
DelayInSecs - The number of seconds to wait between retries in seconds, default is 30 seconds
SuccessMessage - The success message when running retries with verbose flag, can use variables to pass in for custom message
FailureMessage - The failure message when running retries, can use variables to pass in for custom message

Return object:

returnObject.success - Boolean value on whether the scriptblock passed before retry limit exceeded or not
returnObject.object - Scriptblock output object that may be required in future code

Function call
# Example assigns to object for use later in a script, has 1 second delay between retries, and a custom failure message
$getSpGroupsResult = Retry-Command -ScriptBlock {
  Get-PnPGroup | Where-Object { $_.OwnerTitle -ne "System Account" }
} -DelayInSecs 1 -FailureMessage "Failed to get $($siteUrl) SharePoint Groups."

Function code
# Allow for retrying commands in case they fail
function Retry-Command {
  [CmdletBinding()]
  Param (
      [Parameter(Mandatory, ValueFromPipeline)]
      [ValidateNotNullOrEmpty()]
      [scriptblock]
      $ScriptBlock,
      [int]
      $RetryCount = 3,
      [int]
      $DelayInSecs = 30,
      [string]
      $SuccessMessage = "Command executed successfuly!",
      [string]
      $FailureMessage = "Failed to execute the command"
      )

  Process {
      # Initialise variables
      $attemptCount = 1
      $executeFlag = $true
      $returnSuccess = $null

      # Execute while $executeFlag is true
      do {
          try {
              # Save previous error action preference and set current preference
              $PreviousPreference = $ErrorActionPreference
              $ErrorActionPreference = 'Stop'
              # Invoke the scriptblock
              $returnObject = Invoke-Command -ScriptBlock $ScriptBlock
              # Reset error action preference to previous preference
              $ErrorActionPreference = $PreviousPreference

              # Only outputs success message if -Verbose parameter used with Retry-Command
              Write-Verbose "$SuccessMessage `n"
              # Set success to true to show successfull execution and flag to false to stop execution
              $returnSuccess = $true
              $executeFlag = $false
          }
          catch {
              if ($attemptCount -gt $RetryCount) {
                  # Output error information once attempts exceed retry limit
                  Write-Host "$FailureMessage! Total retry attempts: $RetryCount"
                  Write-Host "[Error Message] $($_.exception.message)"
                  Write-Host "[Invocation Positional Message] $($_.InvocationInfo.PositionMessage) `n"
                  # Set success to false to show failed execution and flag to false to stop execution
                  $returnSuccess = $false
                  $executeFlag = $false
              }
              else {
                  # Output and increment attempt count and wait for the set delay
                  Write-Host "[$attemptCount/$RetryCount] $FailureMessage. Retrying in $DelayInSecs seconds..."
                  Start-Sleep -Seconds $DelayInSecs
                  $attemptCount += 1
              }
          }
      }
      while ($executeFlag)

      # Return object with both the success boolean and the returned object from the invoked command (if any)
      return @{
        "success" = $returnSuccess
        "object"  = $returnObject
      }
  }
}


tracer hangs only in Windows

Describe the bug
(I'm crossposting SO post as I'm begin understanding how coverage test is working.)
I've been working on a PR for rpy2 package to improve its support for Windows, and the provided pytest test hangs while running coverage.py's tracer only in Windows.

The code base appears not to use any of the things mentioned in "Things that cause trouble."
This test has been in use with GitHub Action for some time with my understanding (Windows test was never reached as the test previously failed in its earlier stage.)

To Reproduce
How can we reproduce the problem?  Please be specific. Don't link to a failing CI job. Answer the questions below:

What version of Python are you using?

Python 3.9.7

What version of coverage.py shows the problem? The output of coverage debug sys is helpful.

coverage              6.4.1

What versions of what packages do you have installed? The output of pip freeze is helpful.

Package               Version
--------------------- -----------
atomicwrites          1.4.0
attrs                 21.4.0
certifi               2<IP_ADDRESS>
cffi                  1.15.0
charset-normalizer    2.0.12
codecov               2.1.12
colorama              0.4.4
coverage              6.4.1
idna                  3.3
iniconfig             1.1.1
Jinja2                3.1.2
MarkupSafe            2.1.1
packaging             21.3
pip                   22.1.2
pluggy                1.0.0
py                    1.11.0
pycparser             2.21
pyparsing             3.0.9
pytest                7.1.2
pytest-cov            3.0.0
pytz                  2022.1
pytz-deprecation-shim 0.1.0.post0
requests              2.28.0
rpy2                  3.5.3
setuptools            62.3.2
tomli                 2.0.1
tzdata                2022.1
tzlocal               4.2
urllib3               1.26.9
wheel                 0.37.1

What code shows the problem?  Give us a specific commit of a specific repo that we can check out. If you've already worked around the problem, please provide a commit before that fix.

fix/win_r_home branch of rpy2 fork

What commands did you run?

coverage run --source rpy2.robjects.lib -m pytest rpy2/tests/robjects/lib

This command hangs after printing:
============================================= test session starts ==============================================
platform win32 -- Python 3.9.7, pytest-7.1.2, pluggy-1.0.0
rootdir: C:\Users\tikum\Documents\Python\rpy2
plugins: cov-3.0.0
collecting ...

Under a debugger, I can follow up until it reaches coverage.py's Collector._start_tracer() (collector.py Line 278):
        fn = tracer.start()

Then, it enters tracer external module and never comes back out.
Removing --source rpy2.robjects.lib argument makes the coverage to run normally. You can find the robjects/lib subpackage here:
https://github.com/tikuma-lsuhsc/rpy2/tree/fix/win_r_home/rpy2/robjects/lib
Expected behavior
Not getting stuck...
Additional context
rpy2 package is a wrapper for R software and the target source modules do interact with R at the time of import.

Hi, sorry this has taken me a while to get to.  It looks like your pull request was https://github.com/rpy2/rpy2/pull/889.  It's now merged, does that mean the hang is fixed? I can't tell from the comments there, and I don't have a Windows environment to test in.


Bengaluru Real Estate Price prediction model with flask deployment.

*What is the awesome project you're thinking of?
Bengaluru Real Estate Price prediction model with a web app made with flask.
Additional context
Kaggle dataset: https://www.kaggle.com/amitabhajoy/bengaluru-house-price-data

hey @muhammadanas0716  @Montekkundan I would like to work on this project!

can you assign it to me?

There you go.

Thank you @Montekkundan for assigning, and I am looking forward to your contribution @sofezticated-gentleman


Change method getVideoByUrl to return video entries which are not online

This fixes the issue of showing downloading progress even if another video with the same URL is already downloaded.
Please review - @rohan-dhamal-clarice @hanningni @aleffert
JIRA: https://openedx.atlassian.net/browse/MOB-1593

:+1:


downgrade bs-css-emotion

Should fix an issue with the padding between graphs that was introduced in https://github.com/ocurrent/current-bench/pull/82

Thanks @tatchi!


Better LoC scheme identification

https://github.com/wellcomecollection/catalogue-pipeline/issues/2298

Very nice sleuthing - would it be useful to turn your additional (PR) comments into (code) comments?

They were originally code comments, but I thought them too tightly tied to the current moment, so I've tried to convey the essence of them without too much of the specifics in the code comments.


Always use the frameState's extent

Since the tile renderer aligns tiles to pixels anyway, we do not need to
modify the extent to make its center align with a pixel.

Is it possible to do the same with the webgl renderer ?

Renderer tests fail when the same change is made to the WebGL renderer.

@fredj I simplified things for the WebGL renderer too, and got rid of ol.renderer.Layer#snapCenterToPixel.

These look like good changes to me.

Thanks @ahocevar


Niloofar / Fix ts errors in academy/blog

Changes:

...

Type of change

[ ] Bug fix
[ ] New feature
[ ] Update feature
[ ] Refactor code
[ ] Translation to code
[ ] Translation to crowdin
[ ] Script configuration
[ ] Improve performance
[ ] Style only
[ ] Dependency update
[ ] Documentation update
[ ] Release

LGTM 👍


Feature/MM 25430 show online status in channel switcher

Summary:
This PR show the online status of a user in the channel switcher.
JIRA Ticket:
https://mattermost.atlassian.net/browse/MM-25430
Fixes https://github.com/mattermost/mattermost-server/issues/15651

Thanks @Prescise for the pull request!
Per the CONTRIBUTING.md file displayed when you created this pull request, we need to add you to the list of approved contributors for the Mattermost project.
Please help complete the Mattermost contribution license agreement?
This is a standard procedure for many open source projects. Your form should be processed within 24 hours and reviewers for your pull request will be able to proceed.
Please let us know if you have any questions.
We are very happy to have you join our growing community! If you're not yet a member, please consider joining our Contributors community channel to meet other contributors and discuss new opportunities with the core team.

@Prescise thanks for opening this PR :rocket:
Would you be open on signing the CLA? After that is done, I will request reviewers for your PR.

@esethna Hi, sorry I reviewing the PR to be sure and saw the order of name, username, status was not good, I've made another modif, sorry again about that

CC// @jasonblais on CLA ^

@Prescise That works for the CLA, thank you for your contribution!

/check-cla

Looks great! Thanks @Prescise! 🎉

Than you for your help @ali-farooq0 ! Happy to help you ^^

HI @Prescise
Thank you for your contribution!
I am seeing few issues with the channel switcher

All channels on channel switcher modal are renamed with logged in user name

Offline status icon is cut off

Hey @Prescise, Do you have any questions about the feedback here? Let me know if I can help.

Hi @hanzei  sorry I didn't received a notif for your comment, I'll fix it today, thanks for your review ^^

Adding @matthewbirtch to review UX here as well ^

@Prescise tag me when you've got the above fixed and I can do a UX review

Hi @esethna sorry for delay I was working on another project and didn't have the time to work on my PR, it should be ok, but I have an issue : my PR needs to sync and merge, my branch is up to date with master and I don't know what to do to fix it, can you help me please ? Thanks

/update-branch

@Prescise  I executed /update-branch that should help update the branch against master.
However, if that doesn't work, you may need to do it manually. Take a look at the answer to this Stack Overflow question to help you rebase. Also here's the Git page on rebasing if you're unfamiliar with the concept.

Error trying to update the PR.
Please do it manually.

@Prescise Opening a channel switcher causes a white screen/console errors. See screenshot.
Can you please take a look? Thanks.

@Prescise the linter will help you identify the cause of those errors.

This PR has been automatically labelled "stale" because it hasn't had recent activity.
A core team member will check in on the status of the PR to help with questions.
Thank you for your contribution!
/cc @jasonblais @jfrerich @emilyacook

Hi @Prescise!  If you need assistance, please feel free to ask questions.  As @nevyangelova pointed out, the linter should help identify the errors.  Also, please note there is a conflicting file that needs to be resolved before merging is possible.

@Prescise let us know if you're still working on this :)

@Prescise let us know if you're still working on this :)

Maybe @asaadmahmood can help with anything outstanding ^

Maybe @asaadmahmood can help with anything outstanding ^

@asaadmahmood this one too when you have a chance!

@asaadmahmood this one too when you have a chance!

Sure @esethna

Sure @esethna

@esethna @matthewbirtch Pushed my change.
This is how it looks.

@asaadmahmood I think we should bring the profile image back to 24x24 to balance things better when channels and users are mixed in the autocomplete list. I can update the design to reflect this if that helps.

Also, the status icon looks to be a bit off-center to me. It looks like it's sitting too high.

@matthewbirtch Reverted back the profile icon and list item size.
Also increased 1px top margin on the status icon.

@nevyangelova Requesting a review again as I made some changes in how this works.

This PR has been automatically labelled "stale" because it hasn't had recent activity.
A core team member will check in on the status of the PR to help with questions.
Thank you for your contribution!
/cc @jasonblais @jfrerich @emilyacook

This PR has been automatically labelled "stale" because it hasn't had recent activity.
A core team member will check in on the status of the PR to help with questions.
Thank you for your contribution!
/cc @jasonblais @jfrerich @emilyacook

@nevyangelova Pushed the logic, but the mapStateToProps is not working for some reason. It's not sending the return to the class.

@esethna, @asaadmahmood, UI Platform team will finish this one up. @nevyangelova, can you please look into what is left to be done? Thanks all!

@deanwhillier This is done from my end. I've addressed Nevy's comment.
The status is added from my end.
The platform team can clean up the tests etc if they want.

@jgilliam17 This is ready for review.

Thank you @asaadmahmood
Channel status icons look good in channel switcher.
There seems to be an issue with current user's status being applied to all other users

Oh yeah good catch @jgilliam17

Will update that.

Should be fixed now @jgilliam17


Mention @babel/preset-env transforming ES modules to CommonJS by default

@babel/preset-env is extremely popular, but unless an additional configuration was added to it, it will break Webpack's tree shaking. It's worth mentioning it in the docs, I think.

Thanks!

@montogeek is this still true?
I see it's defaulting to "auto" (no idea how how "auto" determines the type).
I ran my pretty big and complex app without modules at all and with modules: false and didn't see a different in bundle size.


net: lwm2m: Fix minor bug with setting flags

Looks like we are setting some bit flags so we should use '|' not '||'
Signed-off-by: Kumar Gala<EMAIL_ADDRESS>

Adding @rbtchc for a second look, but this LGTM.  Nice catch.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@79dc1fe). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master   #14487   +/-   ##
=========================================
  Coverage          ?   52.02%
=========================================
  Files             ?      308
  Lines             ?    45569
  Branches          ?    10553
=========================================
  Hits              ?    23709
  Misses            ?    17057
  Partials          ?     4803

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 79dc1fe...acf8ec8. Read the comment docs.

Adding @rbtchc for a second look, but this LGTM. Nice catch.

Clang reported it to me :)


Contribution: Accessibility Pictogram Set

1. Aperto/IBM iX Public
2. Accessibility Pictogram Set
3. For our team at Aperto (part of IBM iX) we needed a pictogram set similar to microsoft inclusive toolkit in the IBM style.
We ended up with twelve pictograms with most of them in female and male variation. They are based on the Retail>Customer Service and People>Advocate pictograms from the carbon system with a minor change:

In red the Retail>Customer Service pictogram, in black the modified template for the female pictogram we used. We changed it because the body was squeezed and was different than the  People>Advocate pictogram.
Maybe it can be fixed/unified?
here is a sketch with some new versions where the body is not so squeezed:
retail_customer-service.zip
4. Box Link
Sketch and SVGs: accessibility-pictograms-set.zip
5. Screen Shot

Grid: accessibility-pictograms_grid.zip

Context: accessibility-pictograms_context.zip

Here is an alternative Mega link with everything just in case :)

@varusgarcia these issues should be placed in the mono repo, I'll transfer it!


[AIRFLOW-2857] Fix verify_gpl_dependency for Read the Docs

Make sure you have checked all steps below.
Jira

[x] My PR addresses the following Airflow Jira issues and references them in the PR title. For example, "[AIRFLOW-XXX] My Airflow PR"

https://issues.apache.org/jira/browse/AIRFLOW-2857
In case you are fixing a typo in the documentation you can prepend your commit with [AIRFLOW-XXX], code changes always need a Jira issue.

Description

[x] Here are some details about my PR, including screenshots of any UI changes:

Per the mailing list thread "Readthedocs is Broken" on Aug 5, 2018, the Read the Docs build process is currently broken per the recent addition of https://github.com/apache/incubator-airflow/pull/3660.
The RTD build environment provides a READTHEDOCS env var boolean which it sets to true.  I have used that to toggle on SLUGIFY_USES_TEXT_UNIDECODE only when that env var is supplied to restrict it to that environment.
Related change: The mock module is used in conf.py is supplied to Sphinx to build the docs, but it was missing from the doc install extra in setup.py, so I've added that.
Here's how I tested this:
pip install -e .[doc]  # (fails)

READTHEDOCS=True pip install -e .[doc]  # (succeeds)

cd docs/
./build.sh
./start_doc_server.sh

Tests

[x] My PR adds the following unit tests OR does not need testing for this extremely good reason:

A successful build on https://readthedocs.org/projects/airflow/builds/ will confirm that this is working in the Read the Docs environment.
Commits

[x] My commits all reference Jira issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters (not including Jira issue reference)
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

Documentation

[x] In case of new functionality, my PR adds documentation that describes how to use it.

When adding new operators/hooks/sensors, the autoclass documentation generation needs to be added.

Code Quality

[x] Passes git diff upstream/master -u -- "*.py" | flake8 --diff

/cc @kaxil

Codecov Report

Merging #3703 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #3703   +/-   ##
=======================================
  Coverage   77.56%   77.56%
=======================================
  Files         204      204
  Lines       15766    15766
=======================================
  Hits        12229    12229
  Misses       3537     3537

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 dc64649...1b4961a. Read the comment docs.

@ashb @kaxil Replying to all comments here since some are now hidden from lines changing in my force push.
I added a clarifying comment for the env var setting as requested.
So the mock dependency surprised me too... I sorta conflated 2 issues here.  Here's what's happening.
1. When building the docs site locally, if I do a fresh install and try to build without mock in the docs extra.
$ SLUGIFY_USES_TEXT_UNIDECODE=yes pip install -e .[doc]
$ cd docs/
$ ./build.sh
sphinx-build -b html -d _build/doctrees   . _build/html
Running Sphinx v1.7.6

Configuration error:
There is a programable error in your configuration file:

Traceback (most recent call last):
  File "/Users/taylor/.local/share/virtualenvs/tmp-afb06f74a17a352/lib/python3.6/site-packages/sphinx/config.py", line 161, in __init__
    execfile_(filename, config)
  File "/Users/taylor/.local/share/virtualenvs/tmp-afb06f74a17a352/lib/python3.6/site-packages/sphinx/util/pycompat.py", line 150, in execfile_
    exec_(code, _globals)
  File "conf.py", line 16, in <module>
    import mock
ModuleNotFoundError: No module named 'mock'

make: *** [html] Error 2

This happens because conf.py for Sphinx imports mock on line 16 which it uses to build MOCK_MODULES.  That appears to be a Sphinx pattern for a build system not having some module dependencies, which given the modules in that list, makes sense to me in a limited environment where I'm not doing a big install with more extras.  Adding the mock change that's in this PR resolves that issue.
2. The CI issue fix... so if I try to replicate the 4 extras that I believe RTD is installing per .readthedocs.yml, with mock removed from the docs extra, then run the build script which effectively runs make html which effectively runs sphinx-build -b html . _build/html, I get the same error.
$ READTHEDOCS=True pip install -e .[doc,docker,gcp_api,emr]
$ cd docs/
$ ./build.sh
...same error as above...

This makes me think there might be something wonky with RTD.  Perhaps it's running a different command than make html, or somehow is getting other extras installed that include mock (e.g., any of the extras that build on devel in setup.py).  As far as I can tell from the RTD docs they are running the same command that errors out for me outside of their environment when I don't supply the mock dependency.

When we build your documentation, we run sphinx-build -b html . _build/html, where html would be replaced with the correct backend.

I'm all for getting to the bottom of the mock issue, but I also know that getting the docs site updating again is probably more urgent.  If not having mock doesn't seem to affect RTD, I'm happy to remove it here.
So the mock issue is really a completely separate issue from the GPL RTD issue.  Should I separate it from this PR?  Or keep it here and add a comment?  What do you think?
P.S. I also fixed some trailing whitespace in .readthedocs.yml.

I saw a different pr(https://github.com/apache/incubator-airflow/pull/3701). Will that one solve the same issue that this pr tries to address? @tedmiston @ashb @kaxil

@feng-tao That PR makes a related change to the docker run command for local development, but doesn't cover the Read the Docs use case since RTD doesn't use those Docker commands.  The main reason for the different workaround used here is that one cannot pass a custom env var into the RTD build environment as the Docker command does, so instead we set it based on an env var that they do provide.
Here's the mailing list thread from Kaxil with a bit more context on this PR -<EMAIL_ADDRESS>

Change the title of PR and Jira to "get RTD env working" or there abouts and I'm happy with the PR.

Thank you for the swift replies all!  Excited to get this merged!

Hey all - It looks like our RTD build post-merge was successful. 😎
I dug into the mock dependency etc in the RTD build environment logs which led to creating a follow up Jira issue.  If you have time to take a look and provide any comments there, it would be appreciated.
https://issues.apache.org/jira/browse/AIRFLOW-2871


consistent formula expression across functions

some functions as BVU use the elegant lm(Y ~ ., data = gravity) while others use this weirdness
form <- stats::as.formula(paste("y_log_rat", "~ dist_log_rat +", paste(additional_regressors, collapse = " + ")))

something better should be used !!!!!

We can filter the columns before the lm.
gravity <- filter(gravity, only_columns_to_use_in_lm)
# then
lm(Y ~ ., data = gravity)

not really as vcov uses the iso codes as input, but I found a decent way ;)


Export point cloud error with large data: "only one live display may be active at once"

Hi all, @tancik ,
I got error "Only one live display may be active at once" when exported point cloud with large input images.
Reproduce:
I captured a set of large images of a tree with greater than 2000 images
Train: ns-train nerfacto --data , trained and created a rendering video very will.
Then, exited train, web-based rendering then exported data
However, I could not received exported point cloud due to error: "Only one live display may be active at once" when I used command:
ns-export pointcloud --load-config <config.yml> --output-dir exports/pcd/ --num-points 1000000 --remove-outliers True --estimate-normals False --use-bounding-box True --bounding-box-min -1 -1 -1 --bounding-box-max 1 1 1

If I used a smaller data images, less than 500 images (this set can load all into RTX 3090), for another tree, it can export point cloud.
Appreciate anybody help me with this.
This is link of data together with json file which I run ns-process-data:
https://drive.google.com/file/d/1RcSGMO-DrUFWDSix00rCMukK9jDb70kt/view?usp=sharing

I'm running into the same thing as well. Exporting a point cloud with more than ~1000 images and I get this error.

@HungNgoCT did you find a way around this?

@HungNgoCT did you find a way around this?

Hi @msours,
Not yet. I just down sampled images to load all the data. So in general, I don't know how to solve this.

@HungNgoCT, this fixed it for me:
https://github.com/nerfstudio-project/nerfstudio/issues/1913

Thank you @msours
It worked for me also by following your share.


Compile Model to one BIM and deploy using ALM Toolkit

Is your feature request related to a problem? Please describe.
We have recently startet to decouple the handling for partitions from TE to managed partitions by certain jobs. Thus we want to deploy using ALM Toolkit to be more aware of potential changes made to the model (compare).
Also we use the great function to break one big model.bim file apart into smaller json files (folder structure). Now we have a manual process to save the file structure into one model.bim file and load this through ALM Toolkit.
Describe the solution you'd like
While the manual process is not really a big obstacle it would however be an improvement to the workflow if the deployment wizard would enable the option to compile the folder structure into one file and with one click select ALM Toolkit as the deployment method.

My opinion on this matter is that ALM Toolkit should support loading a folder structure created by Tabular Editor, as it would be more complex for Tabular Editor to detect whether ALM Toolkit is also available on the machine. I will reach out to author to see if we can somehow arrange this :-)
As a workaround for now, you can use Tabular Editor's CLI to quickly convert the folder structure to a .bim file:
start /wait TabularEditor.exe "path\to\database.json" -B "path\to\model.bim"

The opposite is also possible (.bim to folder). Put this script in a .cmd file, and you got an easy one-click way of converting from one to the other.


Undo accidental change. Fix Enter Key

As you can see in this issue (https://github.com/C0D3D3V/Moodle-Downloader-2/issues/83), since reformatting, the enter key recognition no longer works. (You can see my readkey usage here https://github.com/C0D3D3V/Moodle-Downloader-2/blob/284f84614934d6d9ca279ffdec0884d1d0cdb873/moodle_dl/utils/cutie.py#L318)
I hope that was not intentional. There has sneaked in a small change in the reformatting.

Maybe we don't need to reverse the change after all. But the fact is, in raw mode Enter is read as \r and in cbreak mode as \n. So the keycodes are not correct anymore.

I changed the mode back to cbreak and corrected the key codes. I don't know if any other codes are wrong.


Tag Release for use with gopkg.in?

It would be nice to have this be compatible with gopkg.in.
It would require a tag to v1.0.0

Good idea, I was just looking at gopkg recently. If I have some time this weekend I'll try and add this.

Done -- http://gopkg.in/agtorre/gocolorize.v1

Awesome! Thanks so much!


MongoDB

What new integration do you require?
Connect to MongoDB
Please describe.
Describe what all querying / actions you need to perform with this integration
Do your need this integration to start using Playbooks or expand your usage?
Additional context
Add any other context about the new integration here.
Thank you for your new integration request!

@sidPhoenix17 Can you assign this issue to me?

Hi @35C4n0r this ticket is available. Do you want to pick it up?


Create an option to show a neutral message for sites without a login

It's kinda sad to come to 2fanotifier.org and see that it doesn't have 2FA for itself, but it doesn't quite make sense because that website doesn't have any login. Perhaps there is a way to make it so some known sites without login don't have negative messaging.
Obviously, this isn't a high priority 😛

Interesting idea. It would be neat to show a "not applicable" state or something like that, but maintaining the data for that would be a real pain.
Maybe there is a heuristic that can substitute. Like, if the page literally does not have any forms of any kind, then have the icon be in the "not applicable" state.
Thoughts?


Setting up JSDocs action for this repository.

We have to decide where to host the documentation and then move the action to this repo. Here is the action:
https://github.com/CircuitVerse/CircuitVerse/blob/stories/enhance_webpack/.github/workflows/docs.yml

@shubhankarsharma00  can i give it a try?

Yeah sure go ahead.

Is this issue still open ?

the pr is working well so I'll close the issue as soon as I merge the PR.

ohh thanks to notify me about this.

Is this issue still open to contribute?


add validation script that runs simulations and checks different simulators are consistent

Originally posted by @jeromekelleher in https://github.com/popsim-consortium/demes-python/issues/354#issuecomment-877047550

I guess we should create an issue to track creating a validation script, like msprime's verification.py? We could run a few representative models though ms and msprime, and see if we get the same distributions of coalescent times etc. Probably the only way to really be sure we're getting this stuff right. There's no point in running ms as part of CI.

Yeah, I was thinking we need something exactly along those lines. Should be easy enough to check the SFS against moments, fwdpy11, etc. What we really need to go along with it though, are a handful of carefully chosen demographic models that will expose differences when there are bugs in the trickiest parts of the conversion process (e.g. asymmetric migration direction, simultaneous pulses).

Sounds good. Simplest way to run the evaluations would be:

Run ms, and pipe the output into tsconvert from_ms (tsconvert will go through a release soon, though, and the signature of this function will probably change to taking a file handle/path as input rather than a string)
Run msprime
Compare the output tree sequences. QQplots of root times is probably as good a diagnostic as any.

I have a repo that does a bit of this, and could do much more.  I am still pondering how best to split up the docker bits to modularize the tests.
It makes heavy use of moments.
https://github.com/molpopgen/fwdpy11_statistical_tests

Great, thanks @molpopgen. I had a feeling you'd done this, but I was having trouble finding it.

Great, thanks @molpopgen. I had a feeling you'd done this, but I was having trouble finding it.

I takes a while to run and putting it in a separate repo lets me run it on various branches more easily.

Added in #354. It needs unreleased version of msprime and tsconvert, so it will likely need modifications the next time someone tries to run it.


Dual sourced Digikey or Mouser

I built one of these a few months ago, and have successfully used it a couple of times since. It's a great project!
I made a few changes and called it "Rev0.2 R". Some of them may be interesting/useful. The main change was to dual source the BOM from Digikey/Mouser. There were a few part updates:

Adjustable Reg -> AP3211KTR-G1 + Freewheel Diode
Fixed Reg -> AP2120N-2.5TRG1
24MHz Crystal -> Epson TSX-3225
16MHz OSC -> ECS-3225MV
USB Connector -> CUI UJ31-CH-31-SMT-TR
RGB LED -> Cree CLMVC-FKA (not tested)
pSRAM -> Can't quite be sourced, using IS62WVS5128FBLL instead

And one personal preference:

Use 0402-size resistor banks

I've also been using KiCAD nightly, so reading the files may require a KiCAD newer than 5.99.0-1930-g59e265b42 (Jun 8 2020).

(Boards from AISLER B.V.)

Nice to see someone else building a Pergola! Great to hear that it works as well.
I am afraid I can't merge your changes as I am still using the Stable version. I'll stick with stable for this project. Once the next version is released I might update the files.
I will include your dual sourcing of parts as long as the footprints and functionality match, but will do this manually. This is really useful so thanks for doing this.
Yeah, not sure why I chose 0603 for the resistor banks tbh. Will use 0402 in RevB.
If you haven't seen, there is a WIP RevB branch with planned changes. https://github.com/pergola-fpga/pergola/tree/revb_wip
Thanks again, but I'm afraid I can't merge this.

By the way, if you haven't seen I have a repo with a bunch of examples and experiments over at my private github. Will clean this up and put it in the official repo later on. https://github.com/kbeckmann/pergola_projects
Also, I'm curious what you did for the firmware. Currently there are a lot of different options. In this repo's readme I mention a quick and dirty hack I made while bringing stuff up. However, I have done some work around this since.
If you want to use the Apollo firmware, you can do so by building a uf2 bootloader from https://github.com/pergola-fpga/tinyuf2 and flash it. You can even do so with the ROM-RAM bootloader.
Then you can flash the application, built from https://github.com/pergola-fpga/apollo/tree/pergola
I might have some wip changes checked in on those branches so I can't swear that it will work out of the box. But if you are curious, the code is all there.

Great 🎉  Thanks for all your work on Pergola and the examples.
The PR definitely isn't intended to be merged directly like for a software project, but I'm not quite sure how to express that on Github. It's more to make the ideas / "it works" story available. I've seen other hardware projects just leave the PR open (hopefully anyone sufficiently interested would find it) or merge it into a sub-folder called "contrib" or similar. Either works.
Iirc the fixed regulator, crystal and oscillator are pin compatible. The adjustable regulator is definitely not - it also requires an external diode. It might be worth considering that for a future revision: with an external diode there were several vendors to choose from whilst parts with the built-in diode were rare.
I wanted to play with project trellis / nMigen, so I went straight for the dirty hack :) It works, and it's sufficiently fast for enjoyable development. Luna is another good source of ideas/examples, as well as your pergola_projects, but I haven't tried the Apollo firmware. If I need or want to try something more than the dirty hack, I'll start there.

Aha, that makes a lot of sense. Thanks for posting it, always nice to see what people do with your projects. I will try to pull in some of your changes anyway as they make sense.


Issues with new GPG version

Hi,
I am facing issues with the new version of GPG i.e. gpg (GnuPG) 2.1.21. Blackbox edit is not working well with this new version because of the change of keys storage mechanism in updated GPG. Are there any new release planned to fix this issue ?
Regards
Avinash

The latest source supports it.  please check out the newest source and see
if you have any problems.
Sent from Gmail Mobile

Hi,
Thanks for the reply. Actually now the issue is coming for the files which are encrypted on the earlier version. Now, for blackbox to work with new version of gpg, there is a new symlink which maps "gpg" to "gpg2". This works fine for new files that we want to encrypt but if in case a file is encrypted earlier with the earlier version by a different user, then decrypting the same file by other user on different machine is not working well. Do you have any suggestions on this ?
Regards
Avinash


Fix invalid package name should show not found

At present, if the wrong package name causes a 404 request, the page will always display loading.

Thanks!


More thorough documancy for Platform.program because it's complex and…

… confusing, and other sources of information don't paint a clear enough picture for beginners.
I spent a long time trying to figure this out, and nothing official was helping. This is documentation from a beginner, for beginners. It spells out what's going on in more gory detail to spare others pain of integrating Elm into arbitrary JavaScript.

Working on making it better. I should have an update soon.

How do I get this thing to re-run the tests without making another commit?

How do I get this thing to re-run the tests without making another commit?

An owner of this repo can restart it, but as a user I think the only way is to just close then re-open this pull request (not open a new one, just re-open the same old one).

Cool. I'll try that.

Neato. It's doing it.

Trying one last time just in case the test failure is intermittent.

I am a detailed documentation editor. I'm happy to review stuff

Yea, a review would be great!

Regarding plumbing and tips for subscriptions, I'll have to look into when/how frequently subscriptions is called, then I'll better reform that section.

I want to keep the documentation as is. The Platform.worker function is not intended to be the first introduction to the Program type, so I think the best improvement may be to point folks to https://guide.elm-lang.org/ where they can learn the fundamentals. Having many places to learn the same thing becomes costly to maintain.


MacOS 15

Just wanted to report that this tool can't seem to get the offsets in the identityservicesd for MacOS 15. A couple of the addresses are blank.
❯ ./find_fat_binary_offsets.py /System/Library/PrivateFrameworks/IDS.framework/identityservicesd.app/Contents/MacOS/identityservicesd
-= Universal Binary Sections =-
Architecture 0 (x86_64):
  CPU Type: 16777223 (0x1000007)
  CPU Subtype: 3 (0x3)
  CPU Subtype Capability: 0 (0x0)
  Offset: 0x4000 (Valid Mach-O Header: Yes)
  Size: 10158960
  Align: 14
Architecture 1 (arm64e):
  CPU Type: 16777228 (0x100000c)
  CPU Subtype: 2 (0x2)
  CPU Subtype Capability: 128 (0x80)
  Offset: 0x9b8000 (Valid Mach-O Header: Yes)
  Size: 11717616
  Align: 14

-= Found Symbol Offsets =-
Offset of _IDSProtoKeyTransparencyTrustedServiceReadFrom in architecture x86_64: 0x0ef611
Offset of _IDSProtoKeyTransparencyTrustedServiceReadFrom in architecture arm64e: 0x0d1248

-= Found Hex Offsets (with pure python fixed sequence search + regex) =-
Architecture 0 (x86_64):
  ReferenceAddress (_IDSProtoKeyTransparencyTrustedServiceReadFrom): 0xef611
  NACInitAddress:
  NACKeyEstablishmentAddress: 0x618370
  NACSignAddress:
Architecture 1 (arm64e):
  ReferenceAddress (_IDSProtoKeyTransparencyTrustedServiceReadFrom): 0xd1248; 0x333688; 0x3607d4; 0x378da4
  NACInitAddress:
  NACKeyEstablishmentAddress:
  NACSignAddress:

Here is the binary. identityservicesd.zip

@skiman6010 Thanks for raising this. I'd have to do some manual reversing to find the offsets and see what changed/how big the change is to understand the specifics of why; the patterns are a bit fragile in general, and it wouldn't surprise me if a major version release outright broke them.
Just so I can name the test binary appropriately, are you able to give the exact version + build this came from? I'm guessing probably this?

https://developer.apple.com/news/releases/?id=06102024c

macOS 15 beta (24A5264n) June 10, 2024

Assuming that is correct:
⇒ file samples/macos-15.0-beta-24A5264n-sequoia-identityservicesd

samples/macos-15.0-beta-24A5264n-sequoia-identityservicesd: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64e]
samples/macos-15.0-beta-24A5264n-sequoia-identityservicesd (for architecture x86_64):	Mach-O 64-bit executable x86_64
samples/macos-15.0-beta-24A5264n-sequoia-identityservicesd (for architecture arm64e):	Mach-O 64-bit executable arm64e

⇒ sha256sum samples/macos-15.0-beta-24A5264n-sequoia-identityservicesd

fb40ddabafb508c6ad000560709abd40ac3d91aa212105278046c625c9fdf0b7  samples/macos-15.0-beta-24A5264n-sequoia-identityservicesd

Yes that is the correct build. Sorry I should have put that in the issue.

Sorry I should have put that in the issue.

@skiman6010 No worries, thanks for confirming :)

Hey I got a hash of the beta 2 build (24A5279h) and it seemed to be different from the build I uploaded earlier. Not sure if it is useful for you but I uploaded it just in case. Thanks!
identityservicesd.zip

beta 2 build (24A5279h)

@skiman6010 Thanks for that :) Not sure if/when I (or someone else) will be able to get to looking at reversing it, but will be helpful at that stage.
⇒ sha256sum samples/macos-15.0-beta2-24A5279h-sequoia-identityservicesd
42332e0f43bf82e20e14508bb3660e164a5d789c4257ddb0824107a81f941a3c  samples/macos-15.0-beta2-24A5279h-sequoia-identityservicesd

Yeah hopefully someone has the time/generosity to jump in and reverse this! I have been trying to keep the Go registration provider working for me as much as possible, but unfortunately I don't have the skills/knowledge for reversing these binaries for symbols.

but unfortunately I don't have the skills/knowledge for reversing these binaries for symbols.

@skiman6010 If it's something you're interested in learning, it might not be too hard for you to learn enough to get by. For the x86 version I was using the free version of Binary Ninja:

https://binary.ninja/

By loading up one of the older binaries with known/correct offsets, we can see how the decompiled code looks at that point, and then we can try and find similar in the newer binary. Usually this was by searching for part of a log message/similar, and then finding the pattern we were looking for after that.
For the ARM version, Binary Ninja free doesn't support it (would need a paid licence), so I was using Ghidra (which is also free, but IMO a bit harder to use/not as nice GUI/etc):

https://ghidra-sre.org/
https://github.com/NationalSecurityAgency/ghidra

Then we basically want to locate functions using log strings:

nac_init:

Search for the string Calling NACInit with:.
The next function call after this log line is the NACInit function.

nac_key_establishment:

Search for the string Received validation initialization request.
Look above for IMRGLog to identify the function call.

nac_sign:

Search for the string failed building validation.
The function called with two 0 parameters is nac_sign.

I recommend doing this on one of the older binaries with known offsets first, as that way you can 'double check' the offsets you find with the 'correct answer' to know you've got the process figured out; then you can apply that same process to the newer binaries.

Some other random notes I have locally, not sure if they will help or just add noise, but in case they are useful..

Load the binary, then go to Analysis -> Rebase -> 0x0 to ensure all of the memory addresses are using the proper offsets directly (Binary Ninja loads at 0x100000000 by default). You could also just set the load address to 0x0 in the first analysis options screen too.
ReferenceSymbol
Find IDSProtoKeyTransparencyTrustedServiceReadFrom symbol, get the address of that function
nac_init
Find the string Calling NACInit with:, this is referenced in the code that’s about to call NACInit, there is no symbol so you just have to look for the next function call after that log line is called. If I remember correctly, it will be in an if statement, with a bunch of _objc_msgSend's, and some strings like bytes/length/etc in it:
x86:
if (sub_1004132e0(_objc_msgSend(rax_16, "bytes"), zx.q(_objc_msgSend(rax_16, "length")), var_50.q + 0x18, &var_88, &var_7c) != 0)

arm64:
    if (iVar2 != 0) {
      local_c0 = 0x8400102;
      local_bc = lVar7;
      __os_log_impl(0x100000000,uVar6,0,"Calling NACInit with: %@",&local_c0,0xc);
    }
    _objc_release(uVar6);
    uVar6 = _objc_retainAutorelease(lVar7);
    uVar9 = _objc_msgSend(uVar6,"bytes");
    uVar6 = _objc_msgSend(uVar6,"length");
    uVar6 = FUN_10043d408(uVar9,uVar6,CONCAT62(uStack_a6,local_a8) + 0x18,&local_f8,&local_fc);

nac_key_establishment
Find the string Received validation initialization request, look above IMRGLog:
x86:
if (sub_100465e00(r12_1, _objc_msgSend(rax_22, "bytes"), zx.q(_objc_msgSend(rax_22, "length"))) != 0)

arm64:
  if (iVar3 != 0) {
    local_9c = *(cfstringStruct **)(param_1 + 0x20);
    local_a0 = 0x8400202;
    local_94 = 0x840;
    local_92 = pcVar5;
    __os_log_impl(0x100000000,uVar7,0,
                  "  Received validation initialization request response: %@   error: %@",&local_a0,
                  0x16);
  }
  _objc_release(uVar7);
  if ((param_4 < 2) || (param_4 == 200)) {
    if (*(long *)(*(long *)(*(long *)(param_1 + 0x38) + 8) + 0x18) == 0) goto LAB_100221d3c;
    if ((*(char *)(*(long *)(*(long *)(param_1 + 0x40) + 8) + 0x18) == '\0') &&
       (lVar10 = _objc_msgSend(uVar6,"length"), lVar10 != 0)) {
      uVar15 = *(undefined8 *)(*(long *)(*(long *)(param_1 + 0x38) + 8) + 0x18);
      uVar7 = _objc_retainAutorelease(uVar6);
      uVar14 = _objc_msgSend(uVar7,"bytes");
      uVar7 = _objc_msgSend(uVar7,"length");
      uVar14 = FUN_1003fdafc(uVar15,uVar14,uVar7);

nac_sign
In the 14.2 binary (x86), the instructions for finding nac_sign via failed building validation doesn't seem to work; but working backwards from the offsets you already have for this one, seems there are some other strings like _sendValidationRequestForSubsystem: that can get us in the right function to find the call we need. If I remember correctly, searching for failed building validation, then go to the caller of that function, and look a few lines up for something like this:
x86:
var_a8[0].d = sub_10049f390(_objc_msgSend(rax_13, "validationContext"), 0, 0, &var_58, &var_ac)

arm64:
          if (iVar1 == 0) {
            local_90 = 0;
            uStack_8e = 0;
            uStack_8c._0_4_ = 0;
            local_94 = 0;
            uVar10 = _objc_msgSend(uVar7,"validationContext");
            uVar11 = FUN_1003f2844(uVar10,0,0,&local_90,&local_94);

Also interesting app I found that seems to "ask nicely" for registration data instead of reversing binaries. https://github.com/TaeHagen/Mac-Hardware-Info

OpenBubbles uses the rustpush repo to authenticate itself as a Mac. It is also supposedly compatible with Beeper registration codes. TaeHagen/bluebubbles-app@rustpush

@skiman6010 Ah, true; fair enough, that makes sense.


Prone immunity and Greater Trip

Hello,
Problem with Owlcode.
Tripping attacks roll CMB even if the enemy is immune to Prone.
If the check suceeds, Greater Trip awards a bonus AoO to allies (even though it probably shouldn't).
Things get seriously broken if that AoO also includes a Trip attempt (like wolf shifter or I suppose kineticist with Bowling Infusion), since it then loops until enemy is defeated, passses CMD or attacker runs out of AoOs.
Thank you for looking into this.
Would be even nicer if you could also fix Demon Kalavakus Aspect endless CM loops (which don't need Prone immune enemies).
Kind regards,
Greg

I'll fix this in my Prestige Plus :p


Article component not exist anymore on Imperavi website

Hello, on the website of Imperavi, the article component is not existing anymore, have you more information ?
So the links to the component in the documentation no longer work.
Thanks for your reply
Sincerely

This is the only thing I could think of:
https://web.archive.org/web/20230601103844/https://imperavi.com/article/docs/


Fallback wrapper scaler

Proposal
A metrics source can become unavailable. This causes it to be ignored if there are multiple scalers present. The proposal is to add a new scaler that would delegate to a wrapped instance of another scaler. If that delegate fails, it would provide a fallback metrics of fallbackReplicas/currentReplicas (a little like the cron scaler).
Scaler Source
A delegate scaler, falling back to a configured replica value
Scaling Mechanics
A proposed configuration could look something like the following:
apiVersion: keda.k8s.io/v1alpha1
kind: ScaledObject
metadata:
  name: feed-ingress
  namespace: feed-main-elb
spec:
  scaleTargetRef:
    deploymentName: feed-ingress
  minReplicaCount: 2
  maxReplicaCount: 10
  triggers:
    - type: fallback
      metadata:
        fallbackReplicas: 8
        delegate:
          type: prometheus
          metadata:
            serverAddress: http://prometheus.hpa-test.svc:9090/
            metricName: feed_ingress_ingress_requests
            threshold: '100'
            query: sum(rate(feed_ingress_ingress_requests{namespace="feed-main-elb"}[2m]))

The catch with this is the current type of TriggerMetadata is map[string]string. Because of this, either that type has to be changed to handle arbitrary object values, or the config has to be flattened. I think the former is preferred to avoid awkward config for users.
Authentication Source
Delegate
Anything else?
This is a continuation of some thoughts from https://github.com/kedacore/keda/issues/965
We are happy to contribute this, but would like some discussion about the approach

So to summarize, if it can't get metrics for Prometheus you want it to fallback to 8 instances, is that correct?

Just to refine that; we would like this trigger/scaler to present as "8 instances" from the HPA. Other scalers would continue to work as normal and HPA would just take the maximum of all of them.

In that case, have you considered to change the configuration the other way around?
Something like this:
triggers:
- type: prometheus
  metadata:
    # Required
    serverAddress: http://<prometheus-host>:9090
    metricName: http_requests_total
    query: sum(rate(http_requests_total{deployment="my-deployment"}[2m])) # Note: query must return a vector/scalar single element response
    threshold: '100'
  fallback:
    # Optional
    replicas: 8

I think that looks good, but maybe we should even flatten to fallbackReplicas as a single property.
Without forgetting about implementation, I think this also simplifies the approach. A new scaler that acts with a delegate probably still makes sense.

The reason why I'm not keeping it flat is so that we can add more things alter on if we want to. For example, send a notification or something.

That makes sense. Implementation-wise we've realised it might be a bit difficult to define the target  (GetMetricsSpecForScaling) when the delegate GetMetrics call fails. The cron scaler works off the premise that the underlying metric will always be the average, but we can't assume that for an arbitrary delegate. :thinking:

This feels like a very overcomplicated solution? We would we not just let the current scale stay when things are broken? That seems like a safer behavior. Having a pinned fallback like this could get very flappy during partial failure scenarios.

I think you would want more safety when your metrics sources are not available. If your application is scaled to its minimum replicas, and is suddenly hit with load while your metrics sources are down, it could easily be overloaded. If you have a safe fallback (it could be your maximum replicas to be extra safe), then you will always be able to handle that load.

My worry is if Prom (or anything else) is overloaded and timing out on ~50% of requests, you could suddenly have a situation where your replica count is rapidly shifting between whatever it's supposed to be at and the fallback number. This would likely put a lot of stress on things. I guess that's fine as long as recommend people set their HPA cooldown parameters when using this feature? That way it would stay at the higher one until things stabilize (or until the cooldown expires).

Yeah, that situation makes sense. But I think the fact that by default HPA scales up immediately when it needs to and has a default stabilisation window of 5 minutes would alleviate this. Yes, it might be worth documenting that aggressive scale-down configurations should be avoided when using this feature.

This feels like a very overcomplicated solution? We would we not just let the current scale stay when things are broken? That seems like a safer behavior. Having a pinned fallback like this could get very flappy during partial failure scenarios.

I do get your concern but like @mishamo is saying I can see value in specifying a fallback. However, it should only kick in after x cycles of checking, not for every failure imo, and come with the required bells and whistles around it such as putting the SO in degraded state or so and emit kubernetes events.

Yes. I was thinking about this myself and came to the same conclusion; we would only want this to happen after a few (configurable) consecutive failed attempts. This likely complicates the implementation somewhat but is probably the right move.

Why not both? :)
In the fallback section, users could specify either the exact number of replicas or an option to stay on the current replicas number.
I agree with Tom's suggestion on keeping the configuration simple in this comment: https://github.com/kedacore/keda/issues/1872#issuecomment-857621978

In the fallback section, users could specify either the exact number of replicas or an option to stay on the current replicas number.

Isn't this the existing behaviour? If so, that would be the same as not including the fallback section at all.

In the fallback section, users could specify either the exact number of replicas or an option to stay on the current replicas number.

Isn't this the existing behaviour? If so, that would be the same as not including the fallback section at all.

If there's a problem in connecting the scaler isActive() returns false and the replicas will by scaled to minReplicaCount.
And this is the problem we are trying to solve here, right? So I thought that as a fallback, there could be a specific number of replicas (eg my Prometheus is down, let's not scale to min, but scale for example to 3 replicas, to handle average load) or the second option could be to stay on the current replicas.

It will stay on the current replicas, but not one you can define

why?

There's two separate issues:

If there's an issue with isActive, then things stay the same unless your minReplicas is set to 0 as per the logic here: https://github.com/kedacore/keda/blob/fb76638a5a8001b2fdc6417a4724c9df082d5cd8/pkg/scaling/executor/scale_scaledobjects.go#L57 . This only really applies if all scalers are inactive/broken due to this loop https://github.com/kedacore/keda/blob/fb76638a5a8001b2fdc6417a4724c9df082d5cd8/pkg/scaling/scale_handler.go#L227. I have code to potentially address this issue here: https://github.com/mishamo/keda/commit/8aca785e1abba46e79809f28bc81dc2de5fc7c59
If you have multiple triggers/sources of metrics (e.g. two separate prometheus instances) and only one is failing, then that failing one will be completely ignored. This issue is to address that source; if it is down, then the HPA for that source should instruct k8s to scale to a fallback number of replicas. More generally I think this concerns the call to GetMetrics rather than IsActive and wrapping that in some fallback logic.

It will stay on the current replicas, but not one you can define

why?

That is how it is today, no? You cannot define what to scale to on failure

Ok. I think we have an approach that should work and feels acceptable to us. It is as follows:

We add an optional fallback config at the same level as triggers:

...
fallback:
  failureThreshold: 3
  fallbackReplicas: 10
triggers:
...

We also add an array of nameOfMetric -> FallbackStatus to the ScaledObject Status. Something like:

 status:
   ...
   fallback:
     some_metric_name:
       numberOfFailures: 2
       status: Pending

We house the fallback logic in provider.go, which, for each scaler, would call GetMetrics on it, update the fallback status on the relevant metric name in the status map and return a normalised (fallbackReplicas * targetMetricFromSpec) value as the metric if fallback has been triggered.
If fallback is defined, it would apply to all triggers within a ScaledObject.
This feature is only compatible with metrics whose spec type is AverageValue (all current scalers except cpu/memory, and possibly the external ones).

Ok. I think we have an approach that should work and feels acceptable to us. It is as follows:

We add an optional fallback config at the same level as triggers:

...
fallback:
  failureThreshold: 3
  fallbackReplicas: 10
triggers:
...

I would propose this instead: (nit)
...
fallback:
  failureThreshold: 3
-  fallbackReplicas: 10
+  replicas: 10
triggers:
...

In terms of the status, does it have to fall in the fallback category? Imagine I'm not using it, I would still be interested to see the # of failures in the status field.

No issue with the change of fallbackReplicas -> replicas.
   fallback:
     - some_metric_name:
         numberOfFailures: 2
         status: Pending

The only limitation with moving the map out of fallback, is the status field we added. The current idea for this is that there would be three states of Happy, Pending and Failing, where Pending would be in place until the failureThreshold was reached. If the user isn't using the fallback feature, then no failureThreshold would be defined. I suppose it would be possible to  either remove the Pending state completely or simply go straight to Failing when no fallback config is defined. Reasonably happy with either approach. Also if it doesn't sit under fallback, it would still have to sit under some name, as the data structure is a map; possibly scalers?

What if we can it health because it basically comes down to that?
What do you think @zroubalik ?

Sorry for the long response time, I was overhelmed with other stuff.
Pardon my ingorance, I am still trying to understand what is the specific ask, what is the scenario you'd like to cover? You want to define the fallback per ScaledObject or per Scaler(trigger)?
Let's say we have these triggers in a ScaledObject:
scaler1: 10
scaler2: 5
scaler3: failure

You can have one trigger or mutliple triggers and if one of the external sources are failing or are unavailable, then you'd like to set some fallback metric number for that particular scaler?
In our case mentioned above the HPA will calculate the desired replicas count based on the numbers from each scaler and it will use fallback number for the failing scaler3, eg 6. In this case the greatest number - scaler1 will win)

Or do you want to convice HPA to use fallback as a desired number if there is some problem and don't do the calculation for other scalers? So if fallback is 6, then this will be used by HPA and not the greatest number (scaler1)

Hi @zroubalik, the original idea was to define the fallback per Scaler (trigger), but as this was more complicated to implement, we decided to shift the fallback definition to the ScaledObject (which is still a fallback per scaler, it's just that the same fallback would be used for all scalers on that object).
The use case described in 1. looks correct to me.

@mishamo  okay. Sounds good

How do you plan to count the number of failures? For example if you have 3 scalers and first one starts to fail and then another scaler starts to fail as well?

The plan is to maintain a map of external_metric_name -> fallback_status in the Status field in k8s. Then the scalers can be looked up by their relative metric names and the number of failures can be read/bumped up/reset etc

Okay, so you don't plan to sum the failures from all scalers, ack.
Anything else you'd like to discuss? The proposal looks good for me 👍

Nope, I think we're all good for now. We have some code that should work on https://github.com/mishamo/keda/tree/fallback-scaler, but there's quite a lot of testing to be done before we create a PR. Just to clarify there's 2 pieces of work:

defaultReplicas behaviour when IsActive throws an error (from #965), which is currently on the master branch of the fork linked above.
The work discussed in this issue when GetMetrics throws an error.

When we come to it, should we PR these as separate PRs or is it OK to PR as one?

I think that one PR is fine (if it is not huge, because reviewing is a bit harder in that case).
Yeah, those are all valid concerns. Thanks a lot for the investigation and the work on this. Once you feel that you are somehow happy with the solution, open a PR and we can follow up the discussion over there.

Re-opening since code wasn't merged yet


[UTILS-159] Remove coveralls from build

Fixes #159

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/bdg-utils-prb/163/
Test PASSed.


Finish ECDH-ES JWE Implementation

Hi rohe,
I've finished the ECDH-ES JWE Implementation for pyjwkest. Please take a look and let me know what you think. Once this is approved and merged, I plan to release a Flask-JWE module for Flask to support  JWE requests and responses that I've already tested with these changes.
Thanks!

Travis CI says it works on Python 2.7 but not on Python 3.4 .
I'll have a look at it tomorrow.

Hey @rohe, I'm going to check 3.4 now and get that fixed.

Looks like the code-quality/landscape check is stuck, however the Travis CI build has passed.

That's good enough for me !

I guess I should release a new version at pypi now !
Will do tomorrow.

Thanks @rohe!


chore(*): Updates kube to 0.33

This release contains the "refresh token" feature.
Closes #187

Thanks for fixing this! ❤


Prevent concurrent updates on in-memory Garden object of operator during parallel task flow.

How to categorize this PR?

/area robustness
/kind enhancement
What this PR does / why we need it:
Prevent concurrent updates on in-memory Garden object of operator during parallel task flow.
Patching/updating object via controller runtime kubernetes clients can have negative consequences for parallel readers of the in-memory golang object (see https://github.com/gardener/gardener/blob/master/docs/development/kubernetes-clients.md for details). For example, parts of the structure can be temporarily (and unexpectedly) empty.
In PR #8103, the immediate issue was addressed while the overarching problem remained. This change reverts the hotfix and replaces it with a proper solution, i.e. it decouples the continuous status patch updates of the progress reporter from the golang in-memory object used during the parallel task flow. Therefore, reading the in-memory object should now be safe again while the in-memory object is updated after the flow so that execution can continue as usual.
Which issue(s) this PR fixes:
None.
Special notes for your reviewer:
This change reverts #8103 as it is no longer necessary.
Release note:

Decouple progess update of gardener operator from task flow logic and thereby prevent concurrency bugs.

/lgtm
/cc @timuthy


Handle message edits

Would be neat to handle edit events on both sides and update the relevant message :)

Technically possible, but would require the bot to keep track of all messages ever sent. Could limit it to last 24 hours or something like that, but it would still require a database. SQLite might work

The bot is now able to handle edits to text messages


Add a feature to map left Option ⌥ key to Meta

Is your feature request about something that is currently impossible or hard to do? Please describe the problem.
I don't really use accented characters using the macOS compose key. So I like to treat the left Option key as an additional modifier for more key mapping space.  Creating these mappings for the text version of vim running inside of iTerm works great because I have the setting "Left Option key: Esc+".
The problem is that in MacVim, the Left Option key continues to act like the macOS Compose key.  That means that I have to add to my .vimrc a bunch of mappings like:
nmap ß <M-s>
imap ß <M-s>

Describe the solution you'd like
Like VimR, let me map the left Option key as Meta:

Describe alternatives you've considered
Add a bunch of alias mappings like:
nmap ß <M-s>
imap ß <M-s>

For now, you can add :set macmeta, which will do the same thing. For historical reasons, it's a Vim configuration (meaning you need to call it in Vim or set it in vimrc) instead of a GUI option like VimR. However, doing so will convert both left and right Option keys as Meta,  but if you don't care about accent keys, you can just set that.
That said, I do intend to tackle input handling in a future release, probably the next one (after the current one I'm working on): https://github.com/macvim-dev/macvim/milestone/22. It's a lot easier to do everything in one go as I go around tackling different parts of the problem. For one, MacVim needs to implement "modifyOtherKeys", or in plain terms "Being able to handle Ctrl-I and   differently". The other aspect is that you would not need to think about "Meta" keys at all. After all, "meta" keys are a complete implementation detail, and you shouldn't need to think about it and should be able to to map something like <M-i> as is without configuration. There are still some details that I'm ironing out, but just a heads up for that. If you use the binary release, you would see from the release notes when I make that change and can switch to using the new settings as I deprecate set macmeta. For now you can just use that option (when I say "deprecate" I don't mean it will stop working, just that it would no longer be the preferred way of doing things)

Thanks @ychin, I appreciate the tip, your future plans, and your explanation


Write a Scala program to find area of a rectangle

Description
Write a Scala program to find area of a rectangle
Area of rectangle = Length × Width
Length : 2
Width  : 3

Area : 6

How to contribute

Save the solution in program/findAreaOfARectangle.scala file
Add findAreaOfARectangle.scala file in find-area-of-a-rectangle folder

!assign


Unable to use a Forked Native Library

Description
Recently I forked React-Native in order to correct some bugs as found in the following issue:

https://github.com/facebook/react-native/pull/9340

This worked great in getting the application to compile and I vaguely remember getting the app to build just fine. However now all I get is the following screenshot

If you haven't changed this prop yourself, this usually means that the versions of the native code and JavaScript code are out of sync. Updating both should make this error go away.
I am using the following:

Node version of react-native 0.39.2
Internally hosted Android .aar version 0.39.2
(my own fork which I renamed to compile 'com.jpshelley.react:react-native:0.39.2')
https://github.com/jpshelley/react-native/tree/0.39.0-AndroidSupportLibrary25.0.1

Solution

I don't have a solution as I'm unsure if this is a bug with not allowing a forked version and having them conflict? I thought the guide to be pretty straight forward but now I'm not to sure https://facebook.github.io/react-native/docs/android-building-from-source.html

Additional Information

React Native version: 0.39.2
Platform: Android
Operating System: MacOS

Issue with building the source correctly. Not the most intuitive and documentation was hard to follow at first. Follow more strictly and gotten past this issue but now running into others. I'll submit another issue if it doesn't work though.


chore(demuxerTest): fix demuxer test mem leak

Signed-off-by: lifujun<EMAIL_ADDRESS>

Codecov Report

Merging #576 (7429c97) into develop (aa65788) will decrease coverage by 4.53%.
The diff coverage is 0.00%.

@@             Coverage Diff             @@
##           develop     #576      +/-   ##
===========================================
- Coverage    67.57%   63.04%   -4.54%
===========================================
  Files          230      230
  Lines        12812    12817       +5
===========================================
- Hits          8658     8080     -578
- Misses        4154     4737     +583

Impacted Files
Coverage Δ

framework/tests/demuxer/demuxerUtils.cpp
0.00% <0.00%> (-79.85%)
:arrow_down:

framework/tests/dataSource/ipList.h
0.00% <0.00%> (-100.00%)
:arrow_down:

framework/utils/errors/framework_error.h
0.00% <0.00%> (-100.00%)
:arrow_down:

framework/tests/demuxer/demuxerUnitTest.cpp
0.00% <0.00%> (-100.00%)
:arrow_down:

framework/tests/dataSource/dataSourceUnitTest.cpp
0.00% <0.00%> (-93.85%)
:arrow_down:

framework/tests/decoder/decoderUnitTest.cpp
0.00% <0.00%> (-93.75%)
:arrow_down:

framework/data_source/ffmpeg_data_source.cpp
6.38% <0.00%> (-51.07%)
:arrow_down:

framework/demuxer/AVBSF.cpp
25.80% <0.00%> (-43.02%)
:arrow_down:

framework/data_source/curl/CURLShareInstance.cpp
69.44% <0.00%> (-27.78%)
:arrow_down:

... and 14 more

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 aa65788...7429c97. Read the comment docs.


Edits to make GWD_RIDGE portable

These edits to the feature/sdrabenh/merge_v10.23.0_MSTRF branch generalize the GWD_RIDGE files.
Note 1: The AWS location is still quite wrong, but it's "doable" in that it points somewhere. Once AWS is more formal, we can fix that.
Note 2: At the moment only C12 and C24 exist at NAS because of NCCS network issues. But it will be complete soon.
cc: @wmputman @sdrabenh

cc @aoloso as well


VEOSS-1718 Not pulling fresh VAT details when returning to a saved registration

replaced by https://github.com/hmrc/one-stop-shop-registration-frontend/pull/409


Customizing FontAwesome version

Hi,
I have a FontAwesome Pro license, and I'd like to use it in my Laravel-AdminLTE project. Is it possible to customize the FontAwesome-related URIs? I checked out the solution on #261, but the solution seems to be no longer available.
Thanks!

run adminlte:install —only=main_views
this will publish the master views, edit then and replace fontawesome includes
please note that if the views get updated in future releases you will need to do that again


XCode 11 SPM support

Updated package definition and project structure to allow direct importing via XCode 11 SPM.

Package manifest created with Swift Tools 5.1
Moved files around to comply with default folder structure for SPM

hi @urosk ! thank you so much for contributing
what's a good way to verify this? i'm not super familiar with SPM

Hi!
Test this by:
1.) Open XCode 11
2.) Open the project file
3.) Click packages tab
4.) Click + to add a package
5.) Pick Gloss (note: it has to be favorited on the GitHub account you use in XCode)
6.) Enter "XCode_11_SPM" in the branch field
The package should be correctly resolved, and added to XCode. Importing Gloss should work. Tests should run.
Keep in mind though, that I totally rearranged the files in folders. I'm not sure if any other supported package managers expect a fixed folder structure. If yes, we could also try to preserve the old structure by specifying a custom SPM path.

this is awesome - thanks for doing that (and for teaching me a bit about Swift PM!)
i'll work on a 3.1.0 release this week - til then, you can point to develop

Gloss 3.1.0 has been released with support for SPM! 🎉


Unable to compile on Ubuntu 14.04 TLS

It appears the libpthread_workqueue doesn't function quite right on Ubuntu 14.04 TLS per discussion here -- http://comments.gmane.org/gmane.comp.lang.swift.corelibs/318. This results in the make/install failing
git submodule init && git submodule update && sh ./autogen.sh && ./configure --with-swift-toolchain=${SWIFT_PATH}/usr --prefix=${SWIFT_PATH}/usr && make && sudo make install
queue.c:226:22: error: use of undeclared identifier 'WORKQ_BG_PRIOQUEUE'
.dgq_wq_priority = WORKQ_BG_PRIOQUEUE,

Maybe related to https://github.com/apple/swift-corelibs-libdispatch/issues/65 ?

I think if you pick up the fix to configure.ac from https://github.com/apple/swift-corelibs-libdispatch/pull/64/files it will work.   Unfortunately the current tip of the master branch of libdispatch doesn't build correctly.

I tried it with the experimental/foundation branch,but it still fails to compile (in a different location)
https://gist.github.com/ElderFain/76e3d34d447e066054b967f793fb3618

@dgrove-oss Any suggestions? I tried with the latest and still see the same issue. I tried a few variations & tweaks without much success.

Is it possible you already have libdisaptch installed in your swift tool chain?  (Look for /usr/lib/swift/linux/x86_64/Dispatch.swiftmodule and/or /usr/lib/swift/dispatch/module.map).  I've seen swiftc crash when building Dispatch.swift if there is already a version of the Dispatch module installed.    If it is installed and you need to recompile libdispatch, you have to uninstall Dispatch from the swift tool chain first, build the new one, then install it.

@ElderFain is this issue still reproducible with Kitura 0.12?

Using the latest CF Swift build pack on Kitura 0.13 I was able to deploy, however its using .tar.gz's of compiled libdispatch, basically bypassing this issue.

I believe this issue is resolved, feel free to reopen or submit a new issue if you have any other problems.


Model metadata should contain the trainer name

Currently the trainer name is encoded in the name of the model's file while this allows for fast lookup, it prevents files to have different names (e.g. acpi_AbsPower.json) since the critical data is lost once renamed.

Point to update:
https://github.com/sustainable-computing-io/kepler-model-server/blob/f8e611e311250bb39959c6c1390846001272335c/src/kepler_model/train/trainer/__init__.py#L245

Currently, we add that only in model-server response here:
https://github.com/sustainable-computing-io/kepler-model-server/blob/f8e611e311250bb39959c6c1390846001272335c/src/kepler_model/server/model_server.py#L223-L225