Bug fix PUT /repos/:owner/:repo/branches/:branch/protection

Empty dismissal restrictions should be a JSON object not a JSON array. See https://developer.github.com/v3/repos/branches/#update-branch-protection. I think this is pretty straightforward? Providing a JSON array for the 'dismissal_restrictions' the GitHub API returns an error response.

This is closely related to #664 (the issue tracking this) and #703 (an attempt to resolve this in the past, containing relevant information).

I think this is pretty straightforward?

This issue has complicated history, but it looks like GitHub has finally updated the documentation, which will make it possible (and much easier) to resolve #664.
In #703, on Aug 22, I noted that:

At https://developer.github.com/v3/repos/branches/#update-branch-protection, it still says:

You can disable dismissal restrictions by passing the dismissal_restrictions object as an empty array.

Today, it no longer says that there.

I was experimenting with the GitHub API a few hours ago. If I recall correctly the API requires sending an empty JSON object. A 400 response is returned if you: use a null value for the key; or if you use a value that's a JSON object with 'users' and 'keys' both set to null. So I think the MarshalJSON is still needed.
I'll take a fresh look at it tomorrow.

the API requires sending an empty JSON object

If so, it might be possible to achieve in a simpler way by removing the ,omitempty option.

I'll take a fresh look at it tomorrow.

👍

Also if you omit the key 'dismissal_restrictions' the response is a 4xx error. At least for org repositories.

I think the omitempty strategy won't work. If we want to disable the dismissal_restrictions then the strategy works because it generates an empty JSON object (that's neat I like the approach). The problem is that if dismissal_restrictions has either 'users' or 'teams' then it must have both 'users' and 'teams'. The GitHub API will barf if one of those keys is missing.
We have a separate problem which is that for personal repositories the 'dismissal_restrictions' key must be absent. It's not allowed to be an empty JSON object. I think one way to fix this is to change the implementation of UpdateBranchProtection() to first make a call to RepositoriesService.Get() to determine whether the repository belongs to an organization. It's a hack but I think it's necessary?

I think the omitempty strategy won't work. If we want to disable the dismissal_restrictions then the strategy works because it generates an empty JSON object (that's neat I like the approach). The problem is that if dismissal_restrictions has either 'users' or 'teams' then it must have both 'users' and 'teams'. The GitHub API will barf if one of those keys is missing.

Fair enough. If it can't be made simpler, then it's fine as is. Also, if we do find a way to make it simpler later, we can always apply it then. First priority is to get to be correct and functional.

We have a separate problem which is that for personal repositories the 'dismissal_restrictions' key must be absent. It's not allowed to be an empty JSON object. I think one way to fix this is to change the implementation of UpdateBranchProtection() to first make a call to RepositoriesService.Get() to determine whether the repository belongs to an organization. It's a hack but I think it's necessary?

Hmm. I think we need to approach this differently. It should be a parameter that the user supplies. In general, each method of go-github is meant to map to a single API call. This is not a high level library, it's a low level wrapper around GitHub REST V3 API, so multiple API calls are not allowed.

I'm comfortable with the approach of adding a parameter. Wasn't sure if it
was ok to make a breaking change.
On Nov 15, 2017 3:38 PM, "Dmitri Shuralyov"<EMAIL_ADDRESS>wrote:
I think the omitempty strategy won't work. If we want to disable the
dismissal_restrictions then the strategy works because it generates an
empty JSON object (that's neat I like the approach). The problem is that if
dismissal_restrictions has either 'users' or 'teams' then it must have both
'users' and 'teams'. The GitHub API will barf if one of those keys is
missing.
Fair enough. If it can't be made simpler, then it's fine as is. Also, if we
do find a way to make it simpler later, we can always apply it then. First
priority is to get to be correct and functional.
We have a separate problem which is that for personal repositories the
'dismissal_restrictions' key must be absent. It's not allowed to be an
empty JSON object. I think one way to fix this is to change the
implementation of UpdateBranchProtection() to first make a call to
RepositoriesService.Get() to determine whether the repository belongs to an
organization. It's a hack but I think it's necessary?
Hmm. I think we need to approach this differently. It should be a parameter
that the user supplies. In general, each method of go-github is meant to
map to a single API call. This is not a high level library, it's a low
level wrapper around GitHub REST V3 API, so multiple API calls are not
allowed.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/google/go-github/pull/779#issuecomment-344720825, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAAtnUgTude8_IlJ8AmctqaZlU5EYBSwks5s20uwgaJpZM4QeRH_
.

The bug fix for personal repos I think will involve a change to the MarshalJSON() function because we need to omit a key only for personal repositories (this is the worst GitHub API ever). So should we add a boolean field 'Personal' to the PullRequestReviewsEnforcementRequest struct with json:"-" and then use the new field in the MarshalJSON() implementation? Alternatively we could name the field 'Org'. If we name if 'Personal' then the default value false is what I think most use cases will want. But that's subjective I happen to use this endpoint predominantly for org repositories.

I think the omitempty strategy won't work. If we want to disable the dismissal_restrictions then the strategy works because it generates an empty JSON object (that's neat I like the approach). The problem is that if dismissal_restrictions has either 'users' or 'teams' then it must have both 'users' and 'teams'. The GitHub API will barf if one of those keys is missing.
We have a separate problem which is that for personal repositories the 'dismissal_restrictions' key must be absent. It's not allowed to be an empty JSON object. I think one way to fix this is to change the implementation of UpdateBranchProtection() to first make a call to RepositoriesService.Get() to determine whether the repository belongs to an organization. It's a hack but I think it's necessary?

After your last comment, I re-read the above, and https://developer.github.com/v3/repos/branches/#update-branch-protection, and started to wonder the following...
Isn't it now possible to create a very simple mapping of Go structs to JSON parameters of the GitHub API endpoint? I am not 100% certain, but my understanding the reason PullRequestReviewsEnforcementRequest.MarshalJSON came up was because of the unusual previous behavior/documentation where it said that an empty array–rather than object–should be used. I highly suspect it was a typo in the documentation, that lead us astray. Mapping it to an object makes much more sense and should work with normal encoding/json mapping rules without the need for custom encoding behaviors.
Basically, what I'm proposing is creating a simple mapping to the GitHub API as it is documented at https://developer.github.com/v3/repos/branches/#update-branch-protection, and letting the user take care of setting the right parameters that satisfy the GitHub API requirements:

In other words, go-github is a low level wrapper around the GitHub API, it should map to the GitHub API as closely as possible. We don't need to create a higher level API on top of it, if we don't have to.
Does that make sense? Do you think it's possible to simplify the solution as a result?

I've prototyped how it can look like (this is not necessarily the final version and can be adjusted further) for dismissal_restrictions, which has one of 3 modes: empty JSON object to disable, JSON object containing both users and teams for org repos, and omit parameter for personal repos:

See https://play.golang.org/p/ZwKhQxLNan.

I like the approach but the proposal doesn't quite work. If "users" is populated and "teams" is empty (or vice versa) the GitHub API requires that both keys be present in the JSON request body. It's quite a terrible API. See https://play.golang.org/p/MBdTjDvL7h for an example.

Good catch. I think we can still work around it. The slices will need to be changed to pointers to slices, keeping omitempty. Then nil means omit, but empty slice is preserved.
See https://play.golang.org/p/kaeh7FbDb7.

Yes! This works. I can close this pull request

Should I submit a new pull request? Or modify this one?

Since the planned approach has changed significantly, sending a new PR would be better. Thanks!


Conditional connecting

Is it possible to conditionally connect to server with this library? There is an example with conditional subscription, but StompSessionProvider doesn't have a way to connect manually (for example to request auth token before connection or simply to check if websockets are currently enabled in case they are optional).
Setting url to null or empty string will just set current page url.

Hello!
I have just released version 3.0.0, which includes a new "enabled" property on the StompSessionProvider, which can be used to control the connection state.
Please let me know if you encounter any issues with this solution.


Permissions not halting on unauthorized

Okay, so, bearing in mind I'm upgrading from 0.14 to 2.0, so I may be doing something wrong.  However, I have a permissions check at the top of each controller (different permissions for different actions).  This may look like:
plug(Permissions, [one_of: [%{sys: [:sys]}]] when action in [:create, :update])

Now, in the :create action, it might look like:
def create(conn, params, _current_user, _claims) do
  with {:ok, %Account{id: id}} <- Repo.transaction(fn -> create_account(params) end) do
    conn
    |> put_status(:created)
    |> json(%{status: "success", id: id})
  else
    e -> do_error(conn, e)
  end
end

However, when running my test:
test "POST /api/account DOES NOT create a new account for non-sys user", ctx do
  conn =
    build_conn()
    |> MyApp.Guardian.Plug.sign_in(ctx.admin, %{pem: User.perms(ctx.admin, :manager)})
    |> post("/api/account", @valid_params)

  assert conn.status == 401
end

I see the unauthorised error printed in the console, but then the action gets run, anyway:
{:unauthorized, :insufficient_permission}

  1) test creating accounts POST /api/account DOES NOT create a new account for non-sys user (MyApp.AccountControllerTest)
     test/api_web/controllers/account_controller_test.exs:99
     ** (Plug.Conn.AlreadySentError) the response was already sent
     code: |> post("/api/account", @valid_params)
     stacktrace:
       (plug) lib/plug/conn.ex:372: Plug.Conn.put_status/2
       (api) lib/api_web/controllers/account_controller.ex:45: MyAppWeb.AccountController.create/5

What I would expect is for the Permission check to halt the Plug stack.  Do I have to add anything additional to the Permission call, perhaps?

Dagnabbit.  I found the answer from my own questioning :)
For those that read this with the same issue, you need to add halt to your Error Handler.  For instance:
defmodule MyApp.AuthErrorHandler do
  import Plug.Conn

  @behaviour Guardian.Plug.ErrorHandler

  @impl Guardian.Plug.ErrorHandler
  def auth_error(conn, {type, reason}, _opts) do
    body = Poison.encode!(%{message: to_string(type)})
    conn
      |> put_resp_content_type("application/json")
      |> send_resp(401, body)
      |> halt()
  end
end


fix: mark as visited on change in addition to blur

Description
Fixes #2134
Type of change

Bugfix

Note: I'm not very happy with my approach to test this (like, I'd prefer to spy on validator). Suggestions are welcome.
Also, ideally we wouldn't need to use fireEvent manually, as native <input type="number"> fires it on Enter.
But for some reason user.type(projectInput, '123[Enter]') didn't work this way, probably RTL doesn't handle this case.

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

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


Azure AD Edit Config always picks Standard endpoint in radio button

Forward port https://github.com/rancher/dashboard/issues/6428

PR #7032

Pushing to 2.7.1 since it's not completely required for this release. However, it sounds like there's no backend fix to be done, so @gaktive to work with @jordojordo on figuring out how to develop on this via some credentials.

I was not able to repro this on v2.7-a352c871a151f093a1f15898951317e177445c79-head: I followed the instructions for enabling azuread with custom endpoints from the rancher docs, and the 'custom' radio option was correctly selected upon editing the auth config.

🚧 REOPENED
Reproduction Environment

docker install

Component
Version / Type

Rancher version
2.7.1

Installation option
Docker

Cert Details
--acme-domain

Docker version
20.10.7, build f0df350

Helm version
v2.16.8-rancher2

Downstream cluster type
not applicable

Downstream K8s version
not applicable

Authentication providers enabled
azure ad

Logged in user role
admin

Browser type
microsoft edge

Browser version
110.0.1587.50

🚨 Additional Reproduction Setup Details: Click to Expand
Env setup with: https://github.com/brudnak/linode-docker-cattle

Reproduction steps

Enable AzureAD OAuth auth provider

Starting from the default Rancher homepage /dashboard/home
Click hamburger menu >>> Users & Authentication >>> Auth Provider >>> AzureAD
Click the radio button underneath Endpoints : >>> Custom
Fill out all the fields
Click Enable

After enabling navigate back to the home screen
Now navigate back to auth providers
Click Edit Config
Observe the UI radio button is now set to standard and not custom

Additional Info
RESULTS
✅ Expected
For the setup process to be remembered and the radio button to still set as Custom
❌ Actual
Radio button when trying to edit the config was switched to Standard

Validation Environment

docker install

Component
Version / Type

Rancher version
v2.7-d559c2f16d5a634d8e5188e242ee9a5b69c55908-head

Rancher commit link
https://github.com/rancher/rancher/commit/d559c2f16d5a634d8e5188e242ee9a5b69c55908

Installation option
Docker

Cert Details
--acme-domain

Docker version
20.10.7, build f0df350

Helm version
v2.16.8-rancher2

Downstream cluster type
not applicable

Downstream K8s version
not applicable

Authentication providers enabled
azure ad

Logged in user role
admin

Browser type
microsoft edge

Browser version
110.0.1587.50

🚨 Additional Reproduction Setup Details: Click to Expand
Env setup with: https://github.com/brudnak/linode-docker-cattle

Validation steps

Enable AzureAD OAuth auth provider

Starting from the default Rancher homepage /dashboard/home
Click hamburger menu >>> Users & Authentication >>> Auth Provider >>> AzureAD
Click the radio button underneath Endpoints : >>> Custom
Fill out all the fields
Click Enable

After enabling navigate back to the home screen
Now navigate back to auth providers
Click Edit Config
Observe the UI radio button is now set to standard and not custom

Additional Info
RESULTS
✅ Expected
For the setup process to be remembered and the radio button to still set as Custom
❌ Actual
Radio button when trying to edit the config was switched to Standard

Instructions on where to find custom endpoints for your azure ad app can be found here https://ranchermanager.docs.rancher.com/how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/authentication-config/configure-azure-ad

✅ PASSED
Reproduction Environment
Unable to repo as mentioned here: and when following linked doc. Passing on 2.7.1.
https://github.com/rancher/dashboard/issues/7045#issuecomment-1421475867
Validation Environment

Component
Version / Type

Rancher version
v2.7-7913e283ff90eebd1f8cc48860a6b410d72cd4dd-head

Rancher commit link
https://github.com/rancher/rancher/commit/7913e283ff90eebd1f8cc48860a6b410d72cd4dd

Installation option
Helm (high availability)

RKE binary version used
v1.4.0

If Helm Chart k8s cluster
v1.24.6

Cert Details
Let's Encrypt / nginx

Docker version
20.10.7, build f0df350

Helm version
v2.16.8-rancher2

Downstream cluster type
not applicable

Downstream K8s version
not applicable

Authentication providers enabled
local

Logged in user role
admin, standard user

Browser type
Google Chrome

Browser version
111.0.5563.110

Validation steps

Enable AzureAD OAuth auth provider

Starting from the default Rancher homepage /dashboard/home
Click hamburger menu >>> Users & Authentication >>> Auth Provider >>> AzureAD
Click the radio button underneath Endpoints : >>> Custom
Fill out all the fields
Follow doc for custom endpoint here: https://ranchermanager.docs.rancher.com/how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/authentication-config/configure-azure-ad
Click Enable

After enabling navigate back to the home screen
Now navigate back to auth providers

Additional Info
RESULTS
✅ Expected
For the setup process to be remembered and the radio button to still set as Custom
✅ Actual
The setup process was remembered and the radio button was still set as Custom


NERT-628 admin and maintainer can now remove project/plan

Links to Jira Tickets

NERT-628

Description of Changes

Admin and maintainer can now delete projects
Made changes to ui, api and db store procedure to support this functionality

🐈 Works as expected, only question is if we like to place for button or if a button on the Project Page would be better

We certainly could but the table gives you context of all other projects/plans and a sys admin may be not be interested in seeing the details.
Having said that we could have both I think I will add that to the tech debt so at least we can consider it later on.


Think about the best way to implement sources

In GitLab by @moritz.huebner on Mar 29, 2018, 04:46
Should we be using dictionaries or class instances to carry the value of GW sources around? How do we properly implement it throughout the project? How can we make it testable.

In GitLab by @ColmTalbot on Mar 30, 2018, 00:15
I'm not sure what the 'value' of a source is.
@gregory.ashton and @paul-lasky have implemented sources that can generate wavefunctions.
I think this is how I'd structure the source class:
class Source:
    ...
    def frequency_domain_strain(f_array, parameters):
        ...
        return {'plus':foo, 'cross':bar, ...}

    def time_domain_strain(t_array, parameters):
        ...
        return {'plus':foo, 'cross':bar, ...}

These could generically be related by an FFT if that's natural.
There are arguments to be had about whether we want:

one of those to be a call function.
the source to know about its parameters.

In GitLab by @ColmTalbot on Apr 6, 2018, 01:11
@gregory.ashton are you happy for me to close this? I think we've converged on:

Functions for time and frequency domain strain.
Sources know about their parameters.
Sources know their time and frequency arrays.
No explicit call function.

I would suggest that we change L22-24 to use the new function peyote.utils.create_frequency_series for symmetry with the time domain case, but that isn't relevant to this.

In GitLab by @gregory.ashton on Mar 30, 2018, 00:38
Cross reference to #3 I think some of these points are related. Sorry I didn't see this issue before posting

In GitLab by @gregory.ashton on Apr 10, 2018, 23:56
Sorry I didn't see this before. Yes, I'm happy for this to be closed (I'll do so now).

In GitLab by @gregory.ashton on Apr 10, 2018, 23:56
closed


When you change services through drop-down, the labels tab does not update

Version - master 3/17
Steps to Reproduce:

Create two services and add different labels to each one
Click on one of the services name to get to details page
Select the label tab so you can see the label you added
In the Service name drop-down select the other service you created

Results: Label tab does not update and is still showing labels for the first service you selected
Expected: Should show the second service labels

version - master ui 3/20
Verified fixed


How to dynamically import?

Hey,
sometimes I need to dynamically import icons.
E.g.:
<component is="svgo-car" />
is not working.
I've tried this:
const getIcon = (name: string) => defineAsyncComponent(() => import(~/assets/icons/${name}.svg))
This is working, but i don't know if i bypass the plugin. And also I need subfolders like "/icons/folder/icon.svg" which is not working this way (error).

also this may be relevant:
https://github.com/cpsoinos/nuxt-svgo/issues/191

Thanks for your response.
With global: true I get:
[vite-node] [plugin:unctx:transform] [VITE_ERROR] virtual:nuxt:PATH.nuxt/components.plugin.mjs:2:2394
then comes a list with lazy icons. And finally:
3 |  const lazyGlobalComponents = [
4  |    ["IAccountCircleLoggedIn", LazyIAccountCircleLoggedIn],

well I'm not sure why with global true you get an error, it may be a bug in nuxt itself, since I have only exposed the option
so you managed to resolve the issue ?

I'm trying to figure it out, but I'm not seeing anything, that could produce this error. Also I do not find anything that could me help to get it working. So you don't have an idea how to fix this, right?

Well without global: true you can't really do it the way you are trying to do
Instead, what you can do is to import all components you need first, and use them directly. Sth like this:
<script setup>
import {IconOne, IconTwo} from "#components"

const icons = [ IconOne, IconTwo ]
</script>

<template>
  <component :is="icons[0]" />
</template>

You can also import the Lazy versions instead as well

okay, thanks.
I don't want to list each icon.
In most cases I use  and this is working.
But in some cases I have a dynamic string and for this it seems that I need global: true
But with my error when I setting this, I'm not getting this working.
Maybe I have to use something completely globaly like this:
https://github.com/nuxt-community/svg-module/issues/86#issuecomment-1344324425

I'm generally not a fan of Vite globe imports, since it was causing my bundle size to explode
that may have changed since last time I checked though
but I'm afraid I can't help you more on this


Bug with a mutable default argument in init of ReCaptchaField

See https://github.com/praekelt/django-recaptcha/blob/develop/captcha/fields.py#L26
I was trying to figure out why when the lang attr is set the first time it gets stuck to whatever the first value is.  Then I found that subsequent calls to client.display_html() were being handled attrs with the lang key already set.

Looks like you have a PR to fix this here: https://github.com/praekelt/django-recaptcha/pull/85

Fixed in #85.


Is it possible to manage or handle missing/undefined keys?

If the key in the view is missing/non-existent, is it possible to handle this by throwing an error or calling a callback?
Or would such a behavior go against the Mustache spec?

Hi,
specs explicitly define that missing context should be resolved as empty string :

lines 104 to 123 in https://github.com/mustache/spec/blob/master/specs/interpolation.yml
lines 135 to 139 in https://github.com/mustache/spec/blob/master/specs/sections.yml

Maybe could you use helpers to do that?

You're right. Thanks for the suggestion. I'll close the issue.


Add work item "icon" should not be visible if user is unauthorized

Add work item "icon" should not be visible if user is unauthorized
The way quick add work item is not visible for unauthorized user, this should not be visible.

#598 PR  is related to this bug.

#598 Merged closing the issue!


Update dependencies to latest

otherwise you get an error when running npm start

Sorry, I posted this in the wrong repo. I will move it to the skeleton repo of tom quirk


Modal bugged in 4.0.0 / final release?

https://jsfiddle.net/7te5mvwo/
This fiddle is more or less a straight up copy / paste of the official example at https://thednp.github.io/bootstrap.native/#modalJS
Something has happened between Rc2 and 5.0.1 it seems,  but I can't figure out what.
I also provide a GIF where I get similar bugs using code that works just fine on 5.0.1-rc2 and bootstrap.native 3.0.15.
Ignore the extra attributes, that is just some housekeeping that is used to attach the javascript code to the html element (this is Elixir Liveview / Surface).
However before making this GIF I disabled all Liveview JS and linked in the BSN cdn so I could more easily set up the example.
The JSFiddle itself should be repro enough I reckon.

I'm testing with the bootstrap-native.js file linked in the <head> and I can confirm manual initialization can work wonky in this case.
Can you try BSN.initCallback() to initialize?

This is a case where the time you have a manually created instance, your trigger button is not present in the DOM, or when the button is present and its event attached but no Modal is present in the DOM.
This would fix the issue in your case:
document.addEventListener('DOMContentLoaded', function(){
  // var myModalInstance = document.getElementById('myModal').Modal;

  var myModalInstance = new BSN.Modal(
    '#myModal', // target selector
    { // options object
      backdrop: 'static', // we don't want to dismiss Modal when Modal or backdrop is the click event target
      keyboard: false // we don't want to dismiss Modal on pressing [Esc] key
    }
  );

  document.getElementById('openbtn').addEventListener('click', ()=> {
    myModalInstance.toggle();
  });
});

Hey!
I also tried just new BSN.Modal(..).show(); directly and it still didnt work.
The gif I attached is running in an es6 compiled / imported scenario in Liveview.
In Liveview I have full control over when the DOM is ready / not ready and this code:
https://github.com/surface-ui/surface_bootstrap/blob/main/lib/surface_bootstrap/modal.hooks.js
Has worked perfectly before 5.* bootstrap and 4.* bootstrap.natve.
As you can see I initialize on the DOM element (containing this 'hook') beeing fully mounted and the html is present in the DOM. This is guaranteed by the mounted() callback not running until Morphdom is done modifying the DOM, so there can be no race conditoins etc.
BSN.initCallback() is for bases where you do the global import right? Because in my SurfaceBootstrap code I have access to the BSN as imported from node modules and a quick test now saw no difference in my doing the BSN.initCallback().
Thank you for taking your time to respond :)

I don't know how to debug that code yet nor afford the time to investigate, however here's my 2cents:

like the original, BSN for V5 is now also delivered in ES6+ flavor;
you need to console.log inside your modal.hooks.js file and check what's what and what's NOT;
compare the working code base with current version and find where's the inconsistency (there's very little change between BSN V3.x and V4.x, perhaps the change to ES6 flavor has changed your expected behavior);
please report back any finding.

Hello,
I appreciate that you can't 'debug' the code, it was more to show that I am simply doing new BSN.Modal(this.el, {...opts}); and that doesn't work anymore.
this.el is a mounted DOM element and not virtual or anything, so I am not quite sure what it is I can change to test otherwise.
I'll try to log a bit more to figure out if the .Modal ends up on the DOM element etc.

I'm currently investigating this, it might come to the fact that we recently implemented very strict ESLint and Modal isn't working properly when bootstrap-native.js is linked in the head.

@olivermt here's my finding, it's enough to draw the conclusion:

the ESLint changes as well as ES6 flavor of the V5 distribution has nothing to do with this issue;
linking the bootstrap-native.js in the head and manually initialize and attach events in the footer as you shown in your code will never work, see below;
the right and proper order is 1: bootstrap-native.js 2: scripts.js, if you link the library in the head and add scripts to init in the footer, you must wrap the scripts in a document.addEventListener('DOMContentLoaded',() => {}) listener;
the library will initialize all targets in the DOM on DOMContentLoaded when linked in the <head> or immediately when linked in the <footer> or end of <body>, so attaching an event handler which accesses Modal instance methods will never work, since the DOM isn't loaded yet, targets are all null;

I've updated the scripts.js now for BSN V5 to make use of my solution.


default input without type="text" floating label not working

In the 2017.2 version of PhpStorm it suggests to me to remove the type = "text", but when I do this the floating label does not work

Using MaterializeCSS Version 0.100.1
Browser: Chrome 59

type="text" Is the default when not specified

An input should have the (correct) type.
Relying on browser defaults is not a good solution.
This means we have somewhere in the Sass a rule for type=text but missed the missing type declaration.

@fega should we cover this case in the Sass code?


Search doesn't work on basisresearch.github.io

Writing a query and hitting enter produces the following:

Thanks for catching this. Does search work when you build the docs locally?

No, same problem. Looking at the page inspector gives the error:  "Query is not defined" in search.html lines 142,147. Tested with Chrome, Safari and Firefox on Mac.

Looks relevant: https://github.com/sphinx-doc/sphinx/issues/7405

adding   "sphinxcontrib.jquery" to the list of extensions in conf.py should do the trick (checked locally).

Great, can you open a PR with a fix? Thanks


Search trigger

Search trigger occurs on ANY page key press or click.  Should only really happen for clicks and keypresses that matter i.e. the ones on tiles.

fixed in "improvements" branch


Security hardening of secrets

To split into issues per DLT
Production usage capability; discussion remaining on whether to solve within BIF or leave open for each consumer.  Regardless should align with plug-in philosophy.

This was solved with us introducing support via the keychain plugin for Hashicorp's Vault software which is a proper keychain backend capable of storing secrets encrypted at rest.


STUB: Add protection against eclipse attacks in Trinity.

See: http://www.cs.bu.edu/~goldbe/projects/eclipseEth
What is wrong?
We should build in some basic protections against eclipse attacks.
How can it be fixed

Require that a certain percentage of the peer connections are initiated as outgoing connection requests.
I think there are others, they may be outlined in the paper.

FWIW, currently we only support outgoing connections

And am I correct that you're looking to implement at least the base framework for listening to incoming connections in conjunction with other things you're working on?  I seem to recall this being stated somewhere but I can't seem to find it.
Also, linking https://github.com/ethereum/py-evm/issues/419 as it talks about how this should be implemented.

Soon I should start working on the main p2p service (p2p.Server), but not yet for listening to incoming connections

Started working on a basic p2p.Server that listens to incoming peers and handles the initial auth/p2p handshakes

Hi guys.  I'm one of the eclipse paper authors.  I have not audited your client, but I wanted to make sure that you implement one of the most important countermeasures, which is to make sure that a client does not make all its connections to node IDs that are hosted at the same IP.  This is countermeasure 2 in our paper.  http://www.cs.bu.edu/~goldbe/projects/eclipseEth

@goldbe thanks for highlighting this for us.  I've updated the main issue description to explicitly include this.

Thanks. It would be good to limit the number of node IDs that map to the same IP in the peer tables as well. I would prefer a limit of one node ID per one IP

We now have a limit of at most 2 connections for any given IP address, as well as a inbound/outbound ratio of 0.75


Prepare hex package with docs

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (f47dc6c) 89.94% compared to head (00fb36c) 71.42%.
Report is 11 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff             @@
##             main       #8       +/-   ##
===========================================
- Coverage   89.94%   71.42%   -18.52%
===========================================
  Files           2        1        -1
  Lines         179       14      -165
  Branches       13        0       -13
===========================================
- Hits          161       10      -151
+ Misses         18        4       -14

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


Post Release: update CHANGELOG, ReadMe

Codecov Report

Merging #619 into master will increase coverage by 3.24%.
The diff coverage is n/a.


Issue trying to create backup policy from Azure CLI

This is autogenerated. Please review and update as needed.
Describe the bug
Command Name
az backup policy create
Errors:
wallace@Azure:~$ az backup policy create --policy {policy} --resource-group K8s --vault-name RSV1000 --name wchen-backup-test02 --backup-management-type AzureIaasVM --workload-type VM
Command group 'backup' is in preview. It may be changed/removed in a future release.
CLIInternalError: The command failed with an unexpected error. Here is the traceback:
        The variable passed should be in valid JSON format and be supplied by az backup CLI commands.
        Make sure that you use output of relevant 'az backup show' commands and the --out is 'json'
        (use -o json for explicit JSON output) while assigning value to this variable.
        Take care to edit only the values and not the keys within the JSON file or string.

Traceback (most recent call last):
File "/opt/az/lib/python3.6/site-packages/knack/cli.py", line 215, in invoke
cmd_result = self.invocation.execute(args)
File "/opt/az/lib/python3.6/site-packages/azure/cli/core/commands/init.py", line 654, in execute
raise ex
File "/opt/az/lib/python3.6/site-packages/azure/cli/core/commands/init.py", line 717, in _run_jobs_serially
results.append(self._run_job(expanded_arg, cmd_copy))
File "/opt/az/lib/python3.6/site-packages/azure/cli/core/commands/init.py", line 710, in _run_job
six.reraise(*sys.exc_info())
File "/opt/az/lib/python3.6/site-packages/six.py", line 703, in reraise
raise value
File "/opt/az/lib/python3.6/site-packages/azure/cli/core/commands/init.py", line 688, in _run_job
result = cmd_copy(params)
File "/opt/az/lib/python3.6/site-packages/azure/cli/core/commands/init.py", line 325, in call
return self.handler(*args, **kwargs)
File "/opt/az/lib/python3.6/site-packages/azure/cli/core/init.py", line 784, in default_command_handler
return op(**command_args)
File "/opt/az/lib/python3.6/site-packages/azure/cli/command_modules/backup/custom_base.py", line 44, in create_policy
return custom.create_policy(client, resource_group_name, vault_name, name, policy)
File "/opt/az/lib/python3.6/site-packages/azure/cli/command_modules/backup/custom.py", line 182, in create_policy
policy_object = _get_policy_from_json(client, policy)
File "/opt/az/lib/python3.6/site-packages/azure/cli/command_modules/backup/custom.py", line 974, in _get_policy_from_json
return _get_object_from_json(client, policy, 'ProtectionPolicyResource')
File "/opt/az/lib/python3.6/site-packages/azure/cli/command_modules/backup/custom.py", line 1009, in _get_object_from_json
json_obj = _get_or_read_json(json_or_file)
File "/opt/az/lib/python3.6/site-packages/azure/cli/command_modules/backup/custom.py", line 1003, in _get_or_read_json
""")
ValueError:
The variable passed should be in valid JSON format and be supplied by az backup CLI commands.
Make sure that you use output of relevant 'az backup show' commands and the --out is 'json'
(use -o json for explicit JSON output) while assigning value to this variable.
Take care to edit only the values and not the keys within the JSON file or string.
The variable passed should be in valid JSON format and be supplied by az backup CLI commands.
            Make sure that you use output of relevant 'az backup show' commands and the --out is 'json'
            (use -o json for explicit JSON output) while assigning value to this variable.
            Take care to edit only the values and not the keys within the JSON file or string.

Traceback (most recent call last):
...
            Make sure that you use output of relevant 'az backup show' commands and the --out is 'json'
            (use -o json for explicit JSON output) while assigning value to this variable.
            Take care to edit only the values and not the keys within the JSON file or string.

To Reproduce:
Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.

Put any pre-requisite steps here...
az backup policy create --policy {} --resource-group {} --vault-name {} --name {} --backup-management-type {} --workload-type {}

Expected Behavior
Environment Summary
Linux-4.15.0-1102-azure-x86_64-with-debian-10.2 (Cloud Shell)
Python 3.6.10
Installer: DEB

azure-cli 2.16.0

Extensions:
ai-examples 0.2.5

Additional Context

backup

@wallace223 : Without the actual policy details, it is hard to figure out the error root cause. Can you please provide the JSON file details to my email<EMAIL_ADDRESS>

@wallace223 Could you please share the policy details?

@wallace223 Could you please share the policy details?

@wallace223: If the issue still exists, can you please provide the policy details?

Since we don't have the policy, its difficult to troubleshoot . Closing the issue for the time being. Incase any further assistance if required from the PG team, please feel free to reopen it.

Since we don't have the policy, its difficult to troubleshoot . Closing the issue for the time being. Incase any further assistance if required from the PG team, please feel free to reopen it.

I have the same issue while creating a policy via CLI. The same JSON policy works via REST API. Please see attached.
SQLBackupPolicy.txt


Support check if qos server is started

What is the purpose of the change
Brief changelog
Verifying this change

Checklist

[x] Make sure there is a GitHub_issue field for the change (usually before you start working on it). Trivial changes like typos do not require a GitHub issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[ ] Each commit in the pull request should have a meaningful subject line and body.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Check if is necessary to patch to Dubbo 3 if you are work on Dubbo 2.7
[ ] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add sample in dubbo samples project.
[ ] Add some description to dubbo-website project if you are requesting to add a feature.
[ ] GitHub Actions works fine on your own branch.
[ ] If this contribution is large, please follow the Software Donation Guide.

Codecov Report

Merging #12952 (cd4a00c) into 3.2 (f5cc40c) will increase coverage by 2.47%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##                3.2   #12952      +/-   ##
============================================
+ Coverage     66.99%   69.47%   +2.47%
  Complexity        2        2
============================================
  Files          1782     1648     -134
  Lines         71864    68421    -3443
  Branches      10265     9995     -270
============================================
- Hits          48148    47536     -612
+ Misses        19080    16294    -2786
+ Partials       4636     4591      -45

see 164 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Uploading will sometimes report an error even though extension package processing is still occurring on the Launch servers.

Expected Behaviour
When uploading an extension package, the packager should more gracefully handle longer-than-expected upload times.
Actual Behaviour
The uploader uses a retry loop of 50 times, then errors out. Extension processing usually still happens on the Launch servers just fine.
Reproduce Scenario (including but not limited to)
Unsure
Steps to Reproduce
Consult with Launch API team about reasons that an extension package would take a long time to process.
Platform and Version
@adobe/reactor-uploaderv5.0.2
Sample Code that illustrates the problem
https://github.com/adobe/reactor-uploader/blob/master/bin/monitorStatus.js#L21-L33
Logs taken while reproducing problem

@adobe export issue to Jira project PDCL

Add a function that will start monitor loop for existing package id.


fix invalid index error when ruby compiled against libedit

This fixes #241 for me.

There's #269 opened with the same fix, so I'll merge that.
Thanks anyways!


fix type

https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsuses

lgtm 👍


Add Frequent Flyer Example

Sorry guys I merged the whole PR by mistake. Just wanted to approve.

I will create a new PR to address @LaurentiuCristofor comments.


SOLR-17279: consolidate security.json constants in tests

https://issues.apache.org/jira/browse/SOLR-17279
Description
The PR creates a SecurityJson utility class that holds a standard "security.json" configuration for use by tests that enable security. Various tests were declaring the same copy/pasted SECURITY_JSON constant, resulting in code duplication; this PR updates those tests to use the new SecurityJson.SIMPLE constant. This is a refactoring PR that only affects test code and does not change any test logic.
Solution
N/A
Tests
No new tests added; got a successful ./gradlew check
Checklist
Please review the following and check all that apply:

[x] I have reviewed the guidelines for How to Contribute and my code conforms to the standards described there to the best of my ability.
[x] I have created a Jira issue and added the issue ID to my pull request title.
[x] I have given Solr maintainers access to contribute to my PR branch. (optional but recommended)
[x] I have developed this patch against the main branch.
[x] I have run ./gradlew check.
[ ] I have added tests for my changes.
[ ] I have added documentation for the Reference Guide

Tagging @epugh

@epugh About the name, I started with SecurityUtils but it seemed to suggest a more general purpose than the intent of this class, and there are zookeeper and eclipse classes with that same name. Some other ideas that come to mind are SampleSecurityJson, SecurityJsonTestUtils, SecurityJsonUtils, SecurityJsonConstants, SecurityConstants, SecurityTestConstants and so on.  Some of those would mean a longer name for the actual string constant containing the json, for example, if we go with SecurityConstants as the class name, we'd need something like SecurityConstants.SIMPLE_SECURITY_JSON
I figured that SecurityJson.SIMPLE was the most concise and someone could further understand the intent by seeing "util" in the package name and seeing that it's in the "test-framework" tree. If I had to pick one of the other options, I think I'd pick SecurityJsonConstants. Let me know if you have a preference or any other suggestions. Thanks for the review!

i think I am coming around to the name...


Add support for RISC-V

Could you sign off your commit? And do we have any existing issues that this PR can link to? Thanks

ref: https://github.com/eclipse/openj9/issues/7421


"Invalid date" in IE8

I would really like to ignore IE8 but unfortunately I'm working on a corporate site and IE8 is still in use in that sector.
The issue is that when viewing this script in IE8, the date appears as "Invalid date" instead of the formatted date that it's suppose to be. You can replicate this issue by viewing the demo page (http://sdepold.github.io/jquery-rss/) in IE8 or using the IE developer tools to emulate IE8. In IE9+, the date works fine.

Thx for Letting me know! Will try to tackle it asap!

Hm works for me?

But your screenshot shows the dates as "Invalid date" too.

Aaah! I thought it would print errors in the console :D

If only! That would probably make it easier to fix. :)

Related comment about #57
@Aurif3x This is weird. It seems that the moment API is not entirely deprecated but only under certain circumstances? If we revert the change from #57 it seems to work nicely and also parses dates properly in IE8. Any opinion about this?

So the issue @faeldray is experiencing is the due to new Date(entry.publishedAt) is NaN.


Non-uniform border radius UI glitches on real iOS devices

When using widgets with a non-uniform border radius, the rendering is randomly showing glitches. I cannot see these glitches on Android nor on iOS simulators, only on a real iOS device (namely an iPhone 6s, but maybe others too).
Here's a simple widget that shows the issue:
class Buggy extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
      decoration: BoxDecoration(
        color: Colors.deepPurple,
        borderRadius: BorderRadius.only(
          topLeft: Radius.circular(6.0),
          bottomLeft: Radius.circular(6.0),
          bottomRight: Radius.circular(6.0),
        ),
      ),
      margin: EdgeInsets.all(6.0),
      padding: EdgeInsets.all(6.0),
      child: Text(
        'foo',
        style: TextStyle(color: Colors.white),
      ),
    );
  }
}

Here's a screenshot (notice the left and bottom sides):

It happens with flutter v0.8.2 (current beta) as well as v0.9.6 (current dev).
flutter doctor -v:
[✓] Flutter (Channel dev, v0.9.6, on Mac OS X 10.13.6 17G65, locale en-KR)
    • Flutter version 0.9.6 at /Users/thibaultdeckers/projects/flutter
    • Framework revision 13684e4f8e (5 days ago), 2018-10-02 14:15:17 -0400
    • Engine revision f6af1f20ba
    • Dart version 2.1.0-dev.6.0.flutter-8a919426f0

[✓] Android toolchain - develop for Android devices (Android SDK 27.0.3)
    • Android SDK at /Users/thibaultdeckers/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-27, build-tools 27.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 10.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.0, Build version 10A255
    • ios-deploy 1.9.2
    • CocoaPods version 1.5.2

[✓] Android Studio (version 3.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 29.0.2
    • Dart plugin version 181.5616
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)

[✓] VS Code (version 1.27.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 2.19.0

[✓] Connected device (3 available)
    • E5823           • CB5A28Q7EL                               • android-arm64 • Android 7.1.1 (API 25)
    • Pierre's iPhone • 8af7b72a069bcfff17340cf9aa6038fd27574173 • ios           • iOS 12.0
    • iPhone X        • 678FCEEC-46CB-4531-986C-F5A1237C00A3     • ios           • iOS 12.0 (simulator)

• No issues found!

Let me know how I can fix these problems as it relates to an I phone 6s.

Fixed as per https://github.com/flutter/flutter/issues/19678


Getting started with repo template using cargo-generate

It's often helpful if there is a repo template with all right set up for new comers. We can use a tool such as cargo-generate (see this example project) to generate a pre-defined project.

yo, i would love to help on this one, is it still available ?

@0xkelvin it would be great if you could work on this. It is perfect timing since we have books and plenty of examples.
@nathanielsimard , @louisfd , @Luni-4 if you have some input on this, please comment.

i am newbie, so if you guys have some guidance please just write down,

@0xkelvin I'm still unsure if cargo-generate is the right tool for the job. Ultimately we would like to allow workflows such as:

Kind of task (Classification, Regression, etc.)
Kind of model
2.1 With optional pretrained weights
Configure training (optional)
3.1 Chose paradigm (Supervised, Unsupervised, Multi-tasks, etc.)
3.2 Chose datasets to be used (can be custom with todo!)
3.3 Chose metrics with good defaults
Configure deployment (optional)
4.1 WASM, REST API, embedded system, etc.

Those are not the requirements for an early version, nor the full list of features we would like in an helper tool to get started with burn, but serves more as a vision for what could be.
Maybe creating a custom CLI tool using clap may be more flexible and allow for more complexity and options; having online search for pre-trained weights, generating custom Rust code with todo! at the right places, stuff like that.
What are your thoughts @antimora

I think for a minimum we create a template repository to help new users get started. I have feeling users copy MNIST example cargo. Next we could tackle other use cases.

nice, let me find out more, and keep a post here

We can create this CLI using clap to manage the options and minijinja to fill in the templates with the data inserted through CLI.  minijinja provides lots of examples in the main repository and this could help quite a lot in the definition of this new tool

This could really use to be done. This was going to be my first dive into Rustdom but it feels too involved to get it up and running. It seems like Rustaceans expect new users to...want to build to play? Or just don't think of 'em. I read everything up to #5 of the Burn Book and it is well written no doubt. But, I jumped to the end because I just want to get to the action, hoping there'd be an "okay dummy who actually needed to read this, now here's how you play" but it leaves one without any idea how to get things running.
I need to convert my Pytorch model and run it, that's about it. But there are no commands ever provided. I get the gist that one doesn't really do much in the CLI, as it states how burn-import should be explicitly separate from burn in order to run the conversion process prior to handing over the model to burn. But I still wasn't provided a single command or exe to run. I figured I'd need to run cargo run burn-import {model path} but who knows.
The example only states cargo run -- 15 for the Pytorch Import Weights example.  So where am I running this from? My weights are 400 shards worth of files, what do I run, where do the files need to be if I can't just put the directory in?
Personally, I like to play now, ask questions later. I think most people are that way, desiring some quick reward. I can't find it but someone had the right idea -- new users just want to pick it right up and have it work. That'd be wonderful, I'd learn by doing, running into errors/problems and fixing them. Baby steps. But because you/I/we/wambo are getting results, it doesn't even feel like a problem, you just wanna nip it in the bud and get back to it! That's my 2c, /endrant. I love the project (so thanks for the important part, it -- the substance!) and its wonderfully built up and out, so hopefully I missed something or I'll find another project in the same vain with the steps all spelt out to the t and bring those lessons back here so I can getta crackin'


[BUG] Imprecise "check usage" link for configuring Anthropic API key

Description
When configuring the Anthropic API key, what exactly is the "check usage" link supposed to do? Can there be a more precise wording?
Device and browser
Firefox 123 on Linux
Screenshots and more

Willingness to Contribute

[ ] 🙋♂ Yes, I would like to contribute a fix.

Thanks for the report @dandv, fixed. Points to a more specific URL which shows usage:


Failing with new Youtube layout (since 2 Feb)

Looks like with new youtube layout and API I might have to observe more divs. The efficient way is to use observables to trigger on mutations at least for latest browsers.
Investigate working of new Youtube API as well.

A funding goal of $100 has been set for this issue.
Donate via CodeFund.io to support this developer and solve this issue.

Make a Donation!
Why donate? Learn more at www.codefund.io/support-open-source.php


refactor(linter): add schemars and serde traits to AllowWarnDeny and RuleCategories

#6119  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @DonIsaac and the rest of your teammates on  Graphite


Twistlock parser should base itself on severity and not CVSS score

Bug description
Depending on what we want to achieve here I guess.
If all parsers base themselves on CVSS score, we may want to keep this way to be homogeneous in DD.
However, going through a twistlock report now, the severity can be "low" (and shown as low in twistlock itself), the cvss score above 9, and we have a discrepancy.
Thoughts?

@aaronweaver @devGregA @valentijnscholten ^

@madchap Do they explain why there is a discrepancy in severity vs. CVSS score? Are they doing some modification based on other mitigating factors? Most of the scanners utilize the severity field as CVSS support from the scanners varies.

I don't know.
However, looking at other scanners, I think I will change the behavior to take in severity and not cvss. There are a few that use cvss apparently, because there may be no obvious severity field.
If you agree with this, I will patch it.

I would think using severity would be best to stay in line with the other scanners. CVSS could (should?) be its own field in DefectDojo...

I would think using severity would be best to stay in line with the other scanners. CVSS could (should?) be its own field in DefectDojo...

I would agree with CVSS being its own field as well.

might be best to have a separate issue/pr for that though

might be best to have a separate issue/pr for that though

Of course.


docs(esl-share): update README

:tada: This PR is included in version 5.0.0-beta.1 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 4.15.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


plugin-grpc: B3 sampled causing gRPC error

What version of OpenTelemetry are you using?
0.6.1
What version of Node are you using?
v12.16.2
What did you do?
Calling a gRPC service with sampled using B3Propagator
What did you expect to see?
The sampled value to be added to the gRPC metadata
What did you see instead?
The error:
Error: keys that don't end with '-bin' must have String values
from https://github.com/grpc/grpc-node/blob/grpc%401.24.2/packages/grpc-native-core/src/metadata.js#L74
Additional context
The B3Propagator is setting the sampled value to a Number. The Metadata validate function is expecting a string or a binary value if the key ends in '-bin'.

Thanks for reporting this! I'm working on trying to reproduce this now.


[Snyk] Security upgrade tensorflow/tensorflow from 2.11.0rc1-gpu-jupyter to latest-gpu-jupyter

This PR was automatically created by Snyk using the credentials of a real user.Keeping your Docker base image up-to-date means you’ll benefit from security fixes in the latest version of your chosen image.
Changes included in this PR

scripts/docker/omegaml-tensorflow/Dockerfile

We recommend upgrading to tensorflow/tensorflow:latest-gpu-jupyter, as this image has only 51 known vulnerabilities. To do this, merge this pull request, then verify your application still works as expected.
Some of the most important vulnerabilities in your base image include:

Severity
Priority Score / 1000
Issue
Exploit Maturity

514
CVE-2022-32221 SNYK-UBUNTU2004-CURL-3070971
No Known Exploit

514
Improper Validation of Array Index SNYK-UBUNTU2004-DBUS-3040815
No Known Exploit

514
CVE-2022-42012 SNYK-UBUNTU2004-DBUS-3040820
No Known Exploit

514
Improper Verification of Cryptographic Signature SNYK-UBUNTU2004-DBUS-3040855
No Known Exploit

514
Out-of-bounds Read SNYK-UBUNTU2004-E2FSPROGS-2770719
No Known Exploit

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
🛠 Adjust project settings

Learn how to fix vulnerabilities with free interactive lessons:
🦉 Learn about vulnerability in an interactive lesson of Snyk Learn.

closing - duplicated by #322


How to run this without Docker?

Downloaded and built it with go, but then? How to use it?
 This repo is for a public lbry.tv api which would support websites like lbry.tv.
Maybe you're looking for the lbry-desktop repo, but don't think the sdk runs on arm devices without having it built there manually.

What is is you want to run exactly? This repo is for a public lbry.tv api which would support websites like lbry.tv.
Maybe you're looking for the lbry-desktop repo, but don't think the sdk runs on arm devices without having it built there manually.

Well, I am looking for "the API Server" that is apparently required to watch Lbry on KODI.

Well, I am looking for "the API Server" that is apparently required to watch Lbry on KODI.

It can use the public api we have running on api.lbry.tv
Also, maybe check out https://amp.reddit.com/r/lbry/comments/k40w1q/kodi_plugin_for_lbry/ ?

It can use the public api we have running on api.lbry.tv
Also, maybe check out https://amp.reddit.com/r/lbry/comments/k40w1q/kodi_plugin_for_lbry/ ?

Also, maybe check out https://amp.reddit.com/r/lbry/comments/k40w1q/kodi_plugin_for_lbry/ ?

Yes, this exact plugin is the reason that I am asking, because it asks for an "API Server" to be used:
https://github.com/accumulator/plugin.video.lbry/issues/3

Also, maybe check out https://amp.reddit.com/r/lbry/comments/k40w1q/kodi_plugin_for_lbry/ ?

Yes, this exact plugin is the reason that I am asking, because it asks for an "API Server" to be used:
https://github.com/accumulator/plugin.video.lbry/issues/3

Give that a try, should work. The other option would be to run the lbry-sdk on the device itself, or on another device on the network and allow external access (would need to run api server on <IP_ADDRESS>)

Give that a try, should work. The other option would be to run the lbry-sdk on the device itself, or on another device on the network and allow external access (would need to run api server on <IP_ADDRESS>)

Entered https://api.lbry.tv without a port number, gave an error message. Will look at the log now.

Entered https://api.lbry.tv without a port number, gave an error message. Will look at the log now.

You can see how they are called in the network tab on lbry.tv
I don't think it was intended to work with the public api, but a local one with a running on the device.
You can try api.lbry.tv/api/v1/proxy instead.

You can see how they are called in the network tab on lbry.tv
I don't think it was intended to work with the public api, but a local one with a running on the device.
You can try api.lbry.tv/api/v1/proxy instead.

Incredible! This works! Thank you so very, very much. :+1: :100: :1st_place_medal:

Incredible! This works! Thank you so very, very much. :+1: :100: :1st_place_medal:

Woohoo, I'm glad to hear that! If you find the time, please comment on his repo with the details. Maybe he can make that the default since most folks wouldn't need to run a local sdk.

Woohoo, I'm glad to hear that! If you find the time, please comment on his repo with the details. Maybe he can make that the default since most folks wouldn't need to run a local sdk.

The pull request above does exactly that @tzarebczan. Thank you for your help.

The pull request above does exactly that @tzarebczan. Thank you for your help.

No, thank you! Shoot me over your LBC address on Twitter Dm (@tomzarebczan) and we'll get a tip over :)

No, thank you! Shoot me over your LBC address on Twitter Dm (@tomzarebczan) and we'll get a tip over :)


Resources folder

What's the best way to go about Resources folder? Run the build command and create the folder manually?

I'm using the resources folder in git-sketch-plugin (see the package.json). I haven't documented it because I'm not sure if it's the right approach yet.

I think it makes sense as long as I can do something like this:
"resources": [
    "Resources/*"
  ],

Supporting globs is a good idea! I'll see if I have time to do it (or feel free to send a PR 😄 )

Hi Mathieu! Thanks for sharing the work you've been doing around sketch tooling. What's the correct way to load in static resources like html? I've set up a project similar to your example in sketch-module-web-view, but webpack is saying: "You may need an appropriate loader to handle this file type." I've tried with html-loader and raw-loader, but it keeps injecting js and assigning the html to a variable within the html file.

there is a working example here: https://github.com/mathieudutour/git-sketch-plugin/blob/master/src/commands/Branches.js#L16

cool, I'll take a look. Thanks!

fixed in 0.11.0


Add an option to the SunEditor WYSIWYG editor for check boxes / ToDo

Create a way for a user to manage a todo item list as part of the WYSIWYG editor.
Hopefully this is a provided option in SunEditor, otherwise we will have to come up with something custom.

On first glance I do not see a checklist tool or plugin for sun editor.
I am going to leave this open.. maybe we can investigate creating a plugin for suneditor to contribute back.


Revise UI design for better accessibility and consistency

Is your feature request related to a problem? Please describe.
There are several versions of menu. We should find one design that follows accessibility guidelines and fits our brand DNA.
Describe the solution you'd like
Revise the blueprint with menu used in the Accounts page.

Add me back when a review is needed.

After our conversation, I remembered that I added a hover state token for backgrounds (color states that do not have a separate hover state like auro-color-ui-hover-on-light). auro-color-ui-bkg-hover-on-light has low opacity so it inherits some of the background color the hover state is applied on.
If we change the hover state of menu, we should replace all the hover states in other components that currently use "background-lighter". Changing the hover state just for menu would take away the consistency in other components' hover states. For example, dropdown and secondary button uses background-lighter for their hover states.
I found examples of hover in Material UI being a similar shade to ours right now. There are no specific accessibility guidelines (contrast ratio) behind hover states. However, I will be darkening the bkg-hover color anyway.
Thoughts? @blackfalcon

Let's schedule some time to review this and review all the other elements where you see a change needed and write stories to support this work.

@braven112 depending on how this shakes out, this may be a milestone of updates across repos.

Changes to be made:

Decrease spacing between left side check and left edge of menu.
If possible, add option to have NO checkmark.
Darken hover color (change hover state color to bkg-hover-on-light)

All of these changes will be made on the blueprint.

Plasse link the updated blueprint to this issue and mention @braven112 so that we can get this prioritized.

https://www.figma.com/file/xwDiIDfSz6j9bM4TD3Ni5N/Menu?node-id=322%3A298
Changes made to spacing and color.

@leeejune If you can create issues for any other place you think this is needed we can work on getting those prioritized.

Created #98 for next steps!


Changed the pip command in order to have qiita-files installed

Make sure pip installs qiita-files

Coverage decreased (-0.02%) to 91.427% when pulling cbfbbce98a3b0a557ff9058bef7c1fc19d0c70b0 on mdehollander:patch-1 into 43d82faa2ff6a7053426aefa475d910147ffe432 on biocore:master.

Thanks @mdehollander


Strange CSS for sidebar field captions

When hovering over captions of fields in the sidebar, a question mark is shown (cursor: help). Why?

Couldn't we just remove cursor: help;. I only see it when hovering over the caption and then the full content will be shown immediately (there is no additional action required and nothing additional will be shown – like a pop over or something similar).

Yeah we can remove it, it's not that useful after all.


get the first address of an ipblock

currently, for LB parsing, I use this:
firstRange := subnetsFreeAddresses[subnet].Split()[0].ToIPRanges()
address := strings.Split(firstRange, "-")[0]
addressBlock, _ := ipblock.FromIPAddress(address)

Fixed by #41


Problems building from source

Hi there,

I am trying to compile from source in a Linuz x86_64 machine.
I am using go 1.14.2 (although go version says it is go1.4.2)

When I run:
go get github.com/prasmussen/gdrive
I get these messages:
imports context: unrecognized import path "context"
imports math/bits: unrecognized import path "math/bits"
imports net/http/httptrace: unrecognized import path "net/http/httptrace"
imports golang.org/x/sys/unix: C source files not allowed when not using cgo: gccgo_c.c
After last message the go get command stops without any additional message.  If I try to build with go build, compilation fails and I am unable to get binary.
Any help would be greatly appreciated, thanks

@caduqued,
Please try use go 1.12.5: https://dl.google.com/go/go1.12.5.linux-amd64.tar.gz

@caduqued . if your linux id debian-based try this


Disabling local video track clarification

Hi! I am looking to get clarification on the localvideotrack.isEnabled property.
From my understanding, setting this property to false will stop sending the user's video to remote participants, but the camera capturer will still be running and video will still show in the local user's preview. However, I am wondering if, while connected to a room, stopping the camera using camera.stopCapture with completion, then starting the camera again using camera.startCapture, could produce the same behavior as setting localvideotrack.isEnabled to false, then to true. I've done some testing and from what I can tell, this does not seem to be possible, but I have not been able to see why these would not obtain similar outcomes. Is it because local video tracks are only assigned to the builder once, in connect(), and once in a room, if these local video tracks are removed, they cannot be added again?
It would be great to get some insight on this. Thanks!

Echo @candice2, it appears from inspecting the browser elements of the remote participant that the dimensions of the video are 2x2 pixels! Can we have further clarification on this please

Hi @candice2,
Sorry for the delayed response.

Is there a way to re-add the local video track to the builder, or some other aspect of the room so that remote participants have access to the video again?

Yes, absolutely. If you are already connected to a Room you can publish a Video Track using -[TVILocalParticipant publishVideoTrack:].
I've slightly modified @piyushtank's snippet from above:
- (IBAction)toggleVideoPressed:(id)sender {
    if (self.localVideoTrack) {
        [self.localParticipant unpublishVideoTrack:self.localVideoTrack];
        [self.cameraSource stopCaptureWithCompletion:^(NSError *error) {
            self.localVideoTrack = nil;
            self.cameraSource = nil;
        }];
   } else {
           self.cameraSource = [[TVICameraSource alloc] initWithDelegate:self];
           self.localVideoTrack = [TVILocalVideoTrack trackWithSource:self.cameraSource
                                                       enabled:YES
                                                          name:@"camera"];
          [self.cameraSource startCaptureWithDevice:frontCamera format:preferredFormat completion:^(AVCaptureDevice *device,
                                                                                TVIVideoFormat *startFormat,
                                                                                NSError *error) {
          }];
          // Publish video so other Room Participants can subscribe
          [self.localParticipant publishVideoTrack:self.localVideoTrack];
    }
}

Please let me know if that helps.
@dombryan94 it sounds like you might have had the same issue? Hopefully republishing will do the trick. If not please let me know.
Best,
Chris

@ceaglest thanks, but why do we have to set the localVideoTrack to nil? Can we not have one local video track object that we just unpublish and re-publish? It means checking to see if the track is enabled in other places of the code when it's been unpublished using the above code will return a nil

Hey @dombryan94,
It shouldn't be necessary to nil out the localVideoTrack if you don't want to. You can reuse the same Track. Quoting Piyush:

Tracks are reusable. You can unpublish a video track from a Room and publish the same video track later again.

To do so you could stopCapture then unpublish, and then startCapture again when you are ready to re-publish. If you don't stop/start then TVICameraSource will keep capturing video even though the track is not published.
Cheers,
Chris

Thanks for the response @ceaglest , That is what I am aiming to do, however when I do that, the feed coming in to the receiving user of the video stream gets the stream but the dimensions are 2x2 (basically not visible). Any ideas?

@dombryan94 Apologies for not following up on this. Were you able to make progress? Let us know if you need our help.

Closing the ticket due to no activity. Feel free to reopen if you run into issue or open a new ticket.

Button touches are not working when screen sharing is enabled. Only scroll is working. Any solution?


Bug: In auto_commit=False mode, the second message is processed when the processing of the first failed with an error

Describe the bug
In auto_commit=False mode, the second message is processed when the processing of the first failed with an error
How to reproduce
Include source code:
main.py:
import logging

import faststream
import fast_depends
import pydantic
from faststream import confluent

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
broker = confluent.KafkaBroker(
    "<IP_ADDRESS>:9092,<IP_ADDRESS>:9093,<IP_ADDRESS>:9094",
    logger=logger,
    allow_auto_create_topics=False,
)
TOPIC_NAME = "sequence-events"

class Event(pydantic.BaseModel):
    sequence_number: int

class SomeService:
    def business_logic(self, sequence_number: int) -> None:
        logger.info("Sequence number: %d", sequence_number)

@broker.subscriber(
    TOPIC_NAME,
    auto_commit=False,
    retry=True,
    group_id="sequence-handler",
    auto_offset_reset="earliest",
)
async def handler(
    event: Event, service: SomeService = fast_depends.Depends(SomeService)
) -> None:
    if event.sequence_number % 2 != 0:
        raise ValueError("Sequence number must be even")
    service.business_logic(event.sequence_number)

app = faststream.FastStream(broker, logger=logger)

@app.after_startup
async def publish_stubs() -> None:
    stubs = [Event(sequence_number=i) for i in range(10)]
    await broker.publish_batch(*stubs, topic=TOPIC_NAME)

docker-compose.yml:
services:
  zookeeper:
    image: confluentinc/cp-zookeeper:7.7.0
    container_name: zookeeper
    ports:
      - 2181:2181
    healthcheck:
      test: echo stat | nc localhost 2181
      interval: 10s
      timeout: 10s
      retries: 3
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181
      ZOOKEEPER_TICK_TIME: 2000

  kafka-1:
    image: confluentinc/cp-kafka:7.7.0
    ports:
      - "9092:9092"
    healthcheck:
      test: nc -z localhost 9092 || exit -1
      start_period: 15s
      interval: 5s
      timeout: 10s
      retries: 10
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_ADVERTISED_LISTENERS: LISTENER_DOCKER_INTERNAL://kafka-1:19092,LISTENER_DOCKER_EXTERNAL://${DOCKER_HOST_IP:-<IP_ADDRESS>}:9092
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_DOCKER_INTERNAL:PLAINTEXT,LISTENER_DOCKER_EXTERNAL:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_DOCKER_INTERNAL
      KAFKA_LOG4J_ROOT_LOGLEVEL: ERROR
      KAFKA_CONFLUENT_SUPPORT_METRICS_ENABLE: "false"
      KAFKA_ALLOW_EVERYONE_IF_NO_ACL_FOUND: "true"
    depends_on:
      zookeeper:
        condition: service_healthy

  kafka-2:
    image: confluentinc/cp-kafka:7.7.0
    ports:
      - "9093:9093"
    healthcheck:
      test: nc -z localhost 9093 || exit -1
      start_period: 15s
      interval: 5s
      timeout: 10s
      retries: 10
    environment:
      KAFKA_BROKER_ID: 2
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_ADVERTISED_LISTENERS: LISTENER_DOCKER_INTERNAL://kafka-2:19093,LISTENER_DOCKER_EXTERNAL://${DOCKER_HOST_IP:-<IP_ADDRESS>}:9093
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_DOCKER_INTERNAL:PLAINTEXT,LISTENER_DOCKER_EXTERNAL:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_DOCKER_INTERNAL
      KAFKA_LOG4J_ROOT_LOGLEVEL: ERROR
      KAFKA_ALLOW_EVERYONE_IF_NO_ACL_FOUND: "true"
      KAFKA_CONFLUENT_SUPPORT_METRICS_ENABLE: "false"
    depends_on:
      zookeeper:
        condition: service_healthy

  kafka-3:
    image: confluentinc/cp-kafka:7.7.0
    ports:
      - "9094:9094"
    healthcheck:
      test: nc -z localhost 9094 || exit -1
      start_period: 15s
      interval: 5s
      timeout: 10s
      retries: 10
    environment:
      KAFKA_BROKER_ID: 3
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_ADVERTISED_LISTENERS: LISTENER_DOCKER_INTERNAL://kafka-3:19094,LISTENER_DOCKER_EXTERNAL://${DOCKER_HOST_IP:-<IP_ADDRESS>}:9094
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_DOCKER_INTERNAL:PLAINTEXT,LISTENER_DOCKER_EXTERNAL:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_DOCKER_INTERNAL
      KAFKA_LOG4J_ROOT_LOGLEVEL: ERROR
      KAFKA_ALLOW_EVERYONE_IF_NO_ACL_FOUND: "true"
      KAFKA_CONFLUENT_SUPPORT_METRICS_ENABLE: "false"
    depends_on:
      zookeeper:
        condition: service_healthy

  redpanda_console:
    image: redpandadata/console:latest
    ports:
      - "9090:8080"
    environment:
      - KAFKA_BROKERS=kafka-1:19092,kafka-2:19093,kafka-3:19094
    depends_on:
      kafka-1:
        condition: service_healthy
      kafka-2:
        condition: service_healthy
      kafka-3:
        condition: service_healthy

And/Or steps to reproduce the behavior:

Create topic "sequence-events" in redpanda console

Run faststream application from main.py:

faststream run main:app

In the console, look at the offset of the topic, it will be equal to 9, although it should be equal to 0 or 1

But such a unit test still passes:
import typing as tp
from unittest import mock

import fast_depends
import pytest
from faststream import confluent

from main import TOPIC_NAME, Event, SomeService, broker

@pytest.fixture
async def test_broker() -> tp.AsyncIterator[confluent.KafkaBroker]:
    async with confluent.TestKafkaBroker(broker) as res:
        yield res

async def test_kafka_broker__when_first_event_raised_error__then_do_not_handle_second_event(test_broker: confluent.KafkaBroker) -> None:
    # given
    service = mock.MagicMock(SomeService)
    fast_depends.dependency_provider.override(SomeService, lambda: service)

    first_event = Event(sequence_number=1)
    second_event = Event(sequence_number=2)

    # when
    await test_broker.connect()
    with pytest.raises(ValueError):
        await test_broker.publish_batch(first_event, second_event, topic=TOPIC_NAME)

    # then
    service.business_logic.assert_not_called()


In Daily CI, page Feel worse, 811 link not by province

Profile Mike has ca-on as a province, but in the following message, the number shows up as 811 and it should be 1-866-797-0000
You may want to discuss your situation with your doctor, if that’s possible, or call [811]
This should be validated for all provinces and all [811] instances

The message mentionned has the good logic, but there is one in feel better that doesn't (utter_daily_ci__feel_better__breathing_difficulty_recommendation_1). This problem is probably a consequence of #237

seems to be fixed by #237


Entity attributes not being called properly with manual initialisation

Having an issue where the underlying attributes of an entity passed to a view part seem to not be available as methods like I’d expect.
I’m initialisating this directly on a View::Context object as I want them available across the app:
# auto_register: false

require "foo/view/context"
require "main/view/parts/thingie"
require "main/import"

module Main
  module View
    class Context < Foo::View::Context
      include Import[
        "thing_repo"
      ]

      def things
        thing_repo.listing.map { |thing|
          Main::View::Parts::Thing.new(
            name: :thing,
            value: thing,
            context: self
          )
        }
      end

Here’s the corresponding view part:
# auto_register: false

require "main/view/part"

module Main
  module View
    module Parts
      class Thingie < Main::View::Part
      end
    end
  end
end

Calling thingie.name in the template results in:
undefined method `name' for #<Main::View::Parts::Thingie:0x00007f7f9941b048> Did you mean? _name

Accessing the value directly in the view part is fine:
def name
  _value[:name]
end

@makenosound This appears to be fixed with the latest dry-view changes, which among other things, supports properly decorating values returned from context objects.


Guide on running the code.

Hi, could you add a guide to the ReadMe file on how to run your code? Thank you very much!

How should I load the pre-trained wavenet model?

Need guide too.

me too

Has anyone been able to execute this code? Please, I need help!

this repo not need pre-train teacher model. I think


feature: Huggingface hub embedder

Description

we should have Huggingface hub embedder, like we currently have for openai/veretexai.

I will work on this.

created: https://github.com/tmc/langchaingo/pull/246

@nidzola I am trying to use the huggingface embedder, but it's not stable sometimes it works fine, sometimes I am getting this error "API returned unexpected status code: 503: unable to create embeddings", Could you please explain why this happen?

@KarimNMG that is the Huggingface API issue - has nothing to do with the embedder it self. That usually means the instance is spinning up for you and should resolve after a while and this.

@zivkovicn Thanks for your fast response !. Is there a way to load the model once and use it like python?

@KarimNMG probably, but that would require some package like SentenceTransformer that python has.

Ok, Thank you


922 nginx uwsgi fix

Updates to uwsgi and nginx

accommodate up to 4 GB file download (to be increased at a later date)
use unix socket for uWSGI server
update nginx config files for unix socket and 4 GB file download and clean up spacing
update hsctl restart to use docker-compose calls instead of docker call
update docker-compose.template for unix socket use
update Dockerfile to use docker hub tagged build ID

Can one of the admins verify this patch?

@hyi Please review

@mjstealey I only have one minor comment. Otherwise, +1 from me.


Implement preferences system

Users need a way to configure personal (and perhaps project level) settings and preferences.
This is a WIP tracking issue for this bundle of features. Living design-doc is available here: https://hackmd.io/@bevy/editor_prefs.

I would add a bit more detail to the "preferences easily definable by plugins" bullet point. Specifically, we want plugins to be able to save data that is important to them, but ultimately it's the app that decides where (on the filesystem) these preferences get written to. Otherwise you'd end up with the problem that two different apps using the same third-party crate might overwrite each other's settings. So it's the app's job to define one or more abstract "buckets" where preferences live, and individual preference users can pick which bucket they want.
The approach I have taken is that preferences are "just resources" - this means you get a lot of things like change detection for free, and plugins can register their own preference types using the standard Bevy APIs. Of course, we don't want to serialize every resource, so an annotation is used to mark which resources are to be saved. Iterating through all resources and serializing the marked ones is relatively straightforward.
Game states are also "just resources", but require a bit of extra plumbing in order to be able to properly handle state transitions.
The simplest approach is to make each resource a separate preference group, but this leads to serialized files that are more complex than they need to be. The reason is because when designing resources in a game, often the way that things are grouped is constrained by technical and performance considerations - for example a property which changes frequently might be placed in it's own resource so that the changes don't effect readers of other properties. So my annotations also provide a way to override the grouping of properties, allowing values that are thematically related to be placed together even if they are in different resources.

(You should be able to edit that hackMD doc btw).

A few more comments, based on recent discord discussions.
I honestly think that we shouldn't be building "editor prefs". We should be building "game and editor prefs". Being able to persistently save things like character name, audio volume, graphics settings and so on are a fundamental feature of just about every A-level game. In my opinion, this is absolutely a feature that Bevy should provide out of the box.
I understand the desire to scope things narrowly so as to build the editor as quickly as possible. The argument is that by trying to serve both the needs of the editor and the needs of games, that it will take longer to develop. I don't believe this is true, and in fact I think it's the other way around: the requirements for game preferences are relatively modest and easy to meet, whereas the (to my eyes) increasing complexity of the preferences requirements are all being driven on the editor side.
Nor am I convinced that these additional features (like merging preferences from different sources) are actually necessary. The use cases are hypothetical and speculative. We don't even know, yet, what kinds of settings we will be storing (coming up with a doc of known settings would be a good first step).
A lot of Bevy developers are used to the hierarchical settings of VSCode, but VSCode is a programmer's editor, and is targeted towards people who understand overlays and hierarchies and such. Moreover, VSCode is unusual in that it is meant for (a) large numbers of projects which are (b) created frequently, and which (c) have a huge set of customization options that are different per-project.
Most apps don't do this, and some users would find it confusing to have settings in multiple places. The kinds of users who use the Bevy editor aren't necessarily the same set of people that would use VSCode. This is exactly the kind of argument that the "user stories" for the editor should resolve.
What's the alternative, then? The answer is to do what most apps do: you have some settings which are per-user, and some settings which are per-project. After all, there are some settings - like key bindings - that don't make sense on a per-project basis. Other settings don't make sense per-user. Are there some settings which make sense for both? Maybe, but is that a small number or a large number? We don't know yet.
The way I had envisioned this working is that there would be an additional annotation, such as @PreferencesSet(User) (the default) or @PreferencesSet(Custom("project")) which would be used to mark a resource as belonging to one set or the other. At the app level, we would define mappings from preferences set to specific file locations, so Custom("project") might map to $PROJECT_ROOT/.bevy_editor/project.toml. But each preference property would be loaded and saved to a single location.
In the case where you want to be able to set a "project default", this can be done as a special case: either by saving a blank, empty project (like Blender does), or by bespoke logic in the app itself for just those properties that can be defaulted.
What about the case of multiple instances of the Bevy editor customized for different games? The answer is, how many instances is the typical editor user likely to have? If the answer is one or two, then it's not that much of a burden for the user to set up their per-user preferences manually for each instance of the editor. If it's more than that, then perhaps an explicit "export/import settings" feature might make sense. It also depends on how many per-user preferences we expect to have. If there's less than a dozen fields, it's probably less work for the user to set those fields by hand than to go through a complex export/import process.
Implementation note: per-user preferences are stored in a file whose name is configured by the app at initialization time, in the standard location for preferences on that platform. This means that each variation of the Bevy editor should have a unique name, so that preferences don't get overwritten.

I think that my earlier ideas on this were too clever; I recently started over with a different and much simpler approach:
https://github.com/viridia/bevy_simple_prefs
My earlier attempt used Bevy reflection to scan for resources that had the preference annotation, and save them. However, this approach has some downsides:

Occasionally you need to load a preference setting before App startup. For example, in a typical Bevy app, the window is one of the first things configured, but in order to save the window size and position (so you don't have to drag the window into place every time the app opens), you need to load that settings before the window opens.
Not all preferences are stored in resources (although most are).
Using reflection to auto-save preferences nudges the user towards storing internal game states in ways that are designed to be easily serializable, which may have unfortunate consequences. For example, an asset inspector widget might want to save the current selected asset so that the user doesn't have to go searching for the asset when they restart the app. Under normal circumstances, the natural way for the asset inspector to represent the current selected asset is with an asset id. However, asset ids cannot be serialized. This tempts the user to instead store the selection internally as a string, which is not as efficient. It would be better to internally represent the selection as an ID, and only convert it to a string when storing or retrieving preferences.

My new approach provides an API for the user to get and set preference groups and properties. It does not use reflection, instead relying on serde to transform Rust data types into TOML or JSON. This means that it is the user's responsibility to update the preference store whenever they change their internal game state. However, this also gives the user the flexibility to represent their game state in a non-serializable format, and then transform it into a serializable format when storing as a preference.
One particularly nice feature of this library is that it supports WASM environments as well as desktop apps. When compiling for WASM, it stores the preferences in LocalStorage instead of using the filesystem.


Make sure these HTML tags are covered

I think we've got most of them, but might want to double check http://htmlreference.io

Hi! Just a question, how can I render Custom Elements in Lucky Pages?

Great question @007lva! You would do this in your BasePage:
generate_tag_methods(method_name: "my_custom_element", tag: "my-custom-element")

This will generate a few tag methods for easily working with your custom element. You can see the implementation here: https://github.com/luckyframework/web/blob/master/src/lucky_web/tags/base_tags.cr#L9

Thank you!


Fix default characters type to string

The documentation states that the current default characters are a
string but it's actually an array

Good catch. Thanks!

Are you able to fix the conflicts here? I'd like to merge this. Thanks 👍


changelog for 0.14.1

Description of Changes
Please check that the PR fulfills these requirements

[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)
[ ] Add a changelog entry (for non-trivial bug fixes / features)
[ ] CI passes

Log Files
Logs / Second
CPU Avg (%)
CPU Avg Δ (%)
Memory Avg (MB)
Memory Avg Δ (MB)

1
1000
1.6724125
+0.13796651
128.05226
+1.686554

1
5000
5.2759047
+0.2069006
137.23895
-0.29673767

1
10000
10.155385
-0.53442955
145.776
+3.2451477

1
50000
47.551956
-0.91371155
175.20892
-0.14021301

1
100000
95.83132
-0.979599
234.07852
+5.502411

10
100
2.138059
+0.22419405
133.5784
+0.1889801

10
500
6.10353
-0.5864887
141.03825
+0.36219788

10
1000
11.793316
-0.39650917
147.9387
+0.5638428

10
5000
54.8101
-9.728603
181.24866
-4.327179

10
10000
105.58671
+0.12132263
220.04283
-12.871231


merge: dev to master

:tada: This PR is included in version 0.75.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Replace lockfile with reference lock

Updates content service to handle lock errors and return them to the client. The client remote handler has been updated to retry when a resource is locked until the resource is unlocked or the expected resource exists.
This gets rid of the lockfile implementation which was used to prevent multiple processes from updating the content. The plan is to add boltdb support in the content store to handle this ingest data which would negate the need for this lock in the long term.

Codecov Report

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

@@            Coverage Diff            @@
##             master     #979   +/-   ##
=========================================
  Coverage          ?   59.05%
=========================================
  Files             ?        5
  Lines             ?      779
  Branches          ?        0
=========================================
  Hits              ?      460
  Misses            ?      205
  Partials          ?      114

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 a6314ca...1cdb010. Read the comment docs.

LGTM

LGTM


async/await support

Hi there,
as jerryscript already has support for Promises I was curious how much work it would be to support async/await. Currently I am looking into using generators but as generators seem to create relatively simple code I was wondering if this was achievable with a moderate amount of work.
Best regards,
Paul

@PaulFreund Unfortunately we do not have any plan to implement async/await at the moment. However new contributions are always welcome. :) Feel free to open a PR if you have a working solution.

@LaszloLango That is good to hear. I will evaluate the possibility but first would be very happy to get a small estimation from you or some other maintainer if the technology is compatible with the current architecture of jerryscript. I'm not a heavy user yet but so far I see it as the best implementation for embedded out there.

I don't see a major blocker to do it in JerryScript, but it is not a trivial task though. Function stack should be kept in memory to allow suspending / resuming execution.

The parsing part is completed for this construct, and the operation part is in progress.

Wow! Thank you very much for all involved, is this reopened because of #3916?

Basically yes, I thought we should keep this open until the remaining asnyc features are implemented.


Reset trigger state from error state

When our triggers get into an error state, I want to reset the trigger state after fixing the underlying problem. I could modify the database directly but would rather go through an official API.

+1

Curious what the status of this is as it has been a few months

+1

Hi, thank you very much for your interest in contributing to the project!  Please read about submitting contributions here: http://www.quartz-scheduler.org/community/contribute.html  and confirm in a reply comment that you agree to the grant statement under the heading "Agreement and Grant of Copyright"

Hi @marwtki,
This contribution falls under the conditions described under the heading "Contributions which do require a full Contributor’s License Agreement (CLA)" here: http://www.quartz-scheduler.org/community/contribute.html
We very much appreciate your contribution, and request that you submit a signed agreement.
Thanks!

+1. Good Feature.

@jhouserizer I have submitted a signed agreement. Thank you!

CLA received.  Thank you for contributing!

Another finding:  simply resetting to "WAITING" state is a bit naive.    If the trigger group is paused, it should go to PAUSED, for example.

@marwtki ,  would you have a chance in the next few days to make some updates to this PR (based upon comments here) - or should I take your changes, edit, and create a new PR?
(I say "few days" because we want to release 2.3.0 in a week).

@jhouserizer, I'm not sure @marwtki is available to help with this anymore. She wrote it when working at Lucid last summer, but is no longer working with us. A couple months ago I applied @zemian's feedback and made a PR to her branch, but it was never merged. What would be easiest is for me to fork, apply the changes and feedback, and then I can open a new PR.
I can do that either today or tomorrow if that works for you. If you would prefer to take the changes and make a pr yourself, feel free. Whatever is easiest for you.

Thanks @jjudd !  it would be appreciated if you did that.
The unfortunate thing is that we'll then also need a CLA from you (see comment above from Oct 11, 2016 for instructions) - hopefully would only take you a few minutes to do.   (Or remind me if you have already done one in the past).

@jhouserizer, I have a branch here with the feedback applied: jjudd/quartz@8fec020adca47c232de52b6948536637cdb8d35e
I'm finding out if anyone has signed the CLA and can contribute the changes. Otherwise, I'm not sure I will be able to have the CLA reviewed and submitted before your release. If that is the case, feel free to use that branch as inspiration for your edits when making a new PR.

Thanks for the updates.  I'll take these changes and modify them to account for remaining comments above.

See new PR #125 .
Thanks to you all for the contributions.


look into proto-lens-jsonpb

It's possible that this library could allow is to get away with less manual json definitions or WrappedVals
https://hackage.haskell.org/package/proto-lens-jsonpb

https://github.com/tclem/proto-lens-jsonpb/blob/master/src/Data/ProtoLens/JSONPB/Class.hs#L226
This function might help out with types with String Fields issues as described in #92.

https://github.com/tclem/proto-lens-jsonpb/blob/master/src/Data/ProtoLens/JSONPB/Class.hs#L159-L162
This one should address the other 2 categories

I should be able to give a pretty thorough pros/cons write up for this.
See my WIP branch

CONS

we cannot use generic deriving
we must manually derive ToJSONPB and FromJSONPB instances via (.=) and (.:)

PROS

every nullable field must have a FieldDefault instance (i.e., we don't have to handle Nulls)
every From instance just uses (.:)

In a similar effort of trying to use generic JSON parsers, I've come to another conclusion:
We should only use this library if we find any value in encoding defaults inside of a FieldDefault versus directly in an Aeson parser:
newtype Foo = Foo {..}

instance FromJSON Foo where
  parseJSON = withObject "Foo" $ \v -> Foo
    <$> v .:? "some_nullable_field" .!= someDefault

versus with PB:
newtype Foo = Foo {..}

instance FromJSONPB NullableField where
  parseJSONPB = ...
instance FieldDefault NullableField where
  fieldDefault = someDefault

instance FromJSON Foo where
  parseJSON = withObject "Foo" $ \v -> Foo
    <$> v .: "some_nullable_field"


Wait until cluster is ready before connecting

Otherwise the user receives the following error:
Unable to connect to MemSQL with provided connection details.
Please verify that MemSQL is running @ <IP_ADDRESS>:3306

The README is not designed to be a copy/paste script - but instructions on the various commands you can run.  Please change the language to note that the user may not be able to connect immediately.  On various systems this may take as little as 2-5 seconds or as much as 20-30 seconds.


eggnog-mapper: 1.0.3 -> 2.1.7

Description of changes
https://github.com/eggnogdb/eggnog-mapper/releases
The scripts run, but I'm not qualified enough to properly test the functionality of this.
(This targets staging because it needs #161217)

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Should be okay to merge now.