Add allow_missing option for jwt_authn filter

Title: Add allow_missing option for jwt_authn filter
Description:
We have use case that need to config JWT filter to reject request only when token is presented but invalid. In other words, if token is missing, request is still accepted. The existing API flag allow_missing_or_failed is not sufficient for this use case.
Propose:
Option 1: Add another field, such as allow_missing to set this behavior. This field and the old allow_missing_or_failed are mutually exclusive.
Option 2: have enum for different behavior and deprecate the existing allow_missing_or_failed. The enum could be:
enum DenyCriteria {
  MISSING_OR_INVALID = 0;
  INVALID = 1;
  NONE = 2; // equivalent to `allow_missing_or_failed
}

@diemtvu I think you can reject failed JWT today with RBAC behind it, no?
In terms of API change, I prefer option 1 to deprecate allow_missing_or_failed and add allow_missing and allow_invalid instead. JWT rules can handle OrList so the original behavior can be achieved by that.

Yes, it's possible, but not very trivial and error prone. Request with
invalid token is more suspicious and should be treated separately. I like
the suggestion of having 2 fields. Both of them can be set to have the same
behavior as allow_missing_or_failed.
On Wed, Nov 6, 2019 at 12:02 PM Lizan Zhou<EMAIL_ADDRESS>wrote:

@diemtvu https://github.com/diemtvu I think you can reject failed JWT
today with RBAC behind it, no?
In terms of API change, I prefer option 1 to deprecate
allow_missing_or_failed and add allow_missing and allow_invalid instead.
JWT rules can handle OrList so the original behavior can be achieved by
that.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/envoyproxy/envoy/issues/8909?email_source=notifications&email_token=AF7X24NKDRPANWGQBW3KJ7TQSMPG7A5CNFSM4JJN2WM2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEDHZX7Q#issuecomment-550476798,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AF7X24LVSTVLVE73RGWOZQDQSMPG7ANCNFSM4JJN2WMQ
.

--
Diem Vu | Software Engineer |<EMAIL_ADDRESS>| +1<PHONE_NUMBER>

I am ok with adding two fields; allow_missing, and allow_failed.  We can mark the old field allow_missing_or_failed "deprecated"

I'm looking at the current spec and implementation, and I'm afraid it might not work.
For the semantic we want (for each jwt requirement, allow missing, but if token provided, it must be valid), the "allow_missing" should be bound to the (provider) requirement. The best spec to describe this will be smt like this:
"requires": {
  "requires_all" : {
    "requirements": [

      {
        "requires_any" : {
          "requirements": [
            {
              "provider_name": "origins-1"
            },
            {
              "allow_missing": {}
            }
          ]
        }
      },
      {
        "requires_any" : {
          "requirements": [
            {
              "provider_name": "origins-2"
            },
            {
              "allow_missing": {}
            }
          ]
        }
      }
    ]
  }
}

However, the allow_missing_or_failed (which allow_missing is likely based on) will remove all tokens, cause the wrong check result for the second requirement.
I think the more correct way is adding a boolean allow_missing to the JwtRequirement, outside the requires_type. This will be used only for the first 2 types (provider_name and provider_and_audiences). The rule then simply become:
"requires": {
  "requires_all" : {
    "requirements": [
      {
        "provider_name": "origins-1",
        "allow_missing": "true"
      },
      {
        "provider_name": "origins-2",
        "allow_missing": "true"
      }
    ]
  }
}

We can decide the fate of allow_missing_or_failed. I think we follow the same stratedgy (ie add a boolean for allow_failed), or we can even deprecate it completely as the "failed" mode may not have a strong requirement.
Wdyt?

However, the allow_missing_or_failed (which allow_missing is likely based on) will remove all tokens, cause the wrong check result for the second requirement.

That seems a bug and can be fixed in implementation.

I think the more correct way is adding a boolean allow_missing to the JwtRequirement, outside the requires_type. This will be used only for the first 2 types (provider_name and provider_and_audiences). The rule then simply become:

Won't this add ambiguity to the requirement when it is used with requires_any? For example, (just taking your second example and modified):
"requires": {
  "requires_any" : {
    "requirements": [
      {
        "provider_name": "origins-1",
        "allow_missing": "true"
      },
      {
        "provider_name": "origins-2"
      }
    ]
  }
}

is ambiguous and confusing, no? even the second (origins-2) doesn't have allow_missing=true, the one missing token will pass because it's an or rule list.

However, the allow_missing_or_failed (which allow_missing is likely based on) will remove all tokens, cause the wrong check result for the second requirement.

That seems a bug and can be fixed in implementation.

I think the more correct way is adding a boolean allow_missing to the JwtRequirement, outside the requires_type. This will be used only for the first 2 types (provider_name and provider_and_audiences). The rule then simply become:

Won't this add ambiguity to the requirement when it is used with requires_any? For example, (just taking your second example and modified):
"requires": {
  "requires_any" : {
    "requirements": [
      {
        "provider_name": "origins-1",
        "allow_missing": "true"
      },
      {
        "provider_name": "origins-2"
      }
    ]
  }
}

is ambiguous and confusing, no? even the second (origins-2) doesn't have allow_missing=true, the one missing token will pass because it's an or rule list.

True, but it is the misconfiguration problem. Imo, the syntax is intuitive enough for users to understand the expected behavior.

Semantically I don't like the allow_missing in JwtRequirement either because it's not "requirement" either. So my preference is your first example:
"requires": {
  "requires_all" : {
    "requirements": [

      {
        "requires_any" : {
          "requirements": [
            {
              "provider_name": "origins-1"
            },
            {
              "allow_missing": {}
            }
          ]
        }
      },
      {
        "requires_any" : {
          "requirements": [
            {
              "provider_name": "origins-2"
            },
            {
              "allow_missing": {}
            }
          ]
        }
      }
    ]
  }
}

Strictly speaking, having allow_missing or allow_missing_or_failed as a requirement (type) itself is equally strange :)
Anyway, I've updated my PR to implement the spec above. The change in these "allow_xxx" requirement types is that it is now only examine the providers within the OR-list (for the AND-list, we can ignore, i.e always satisfied. Same as stand-alone requirement). Please take a quick look to see if it make sense. I'll do some clean up and add tests if you think it is the right direction.

Strictly speaking, having allow_missing or allow_missing_or_failed as a requirement (type) itself is equally strange :)
Anyway, I've updated my PR to implement the spec above. The change in these "allow_xxx" requirement types is that it is now only examine the providers within the OR-list (for the AND-list, we can ignore, i.e always satisfied. Same as stand-alone requirement). Please take a quick look to see if it make sense. I'll do some clean up and add tests if you think it is the right direction.

On a second thought, allow_missing can only associated to a JwtRequirement, otherwise we don't know if it is really missing because the token location is specified in JwtProvider (which is in JwtRequirement), right?

Strictly speaking, having allow_missing or allow_missing_or_failed as a requirement (type) itself is equally strange :)
Anyway, I've updated my PR to implement the spec above. The change in these "allow_xxx" requirement types is that it is now only examine the providers within the OR-list (for the AND-list, we can ignore, i.e always satisfied. Same as stand-alone requirement). Please take a quick look to see if it make sense. I'll do some clean up and add tests if you think it is the right direction.

On a second thought, allow_missing can only associated to a JwtRequirement, otherwise we don't know if it is really missing because the token location is specified in JwtProvider (which is in JwtRequirement), right?

That's true (and would be simpler :)). However, in my implementation based on previous decision, I made it to consider only JwtRequirement in the same OR list, so it still have some context of what it's looking for. However it cannot handle a nested OR & AND.
Btw, by itself or in the AND list, the allow_missing (as well as allow_missing_or_failed) doesn't really make sense. I make it become no-op but we may also consider to add validation for this.

Yeah the whole API is slightly messy, wondering if we can make it much more easier to understand while it is still in alpha.

@lizan, how do you want to proceed this. Do you want to keep the allow_missing as one of the one-of as implemented in https://github.com/envoyproxy/envoy/pull/8978, or move it out to separate field?


feat: support ZEIT_FUN_NODE_MIRROR env for node.js tarball

This feature will be good for me :)

I am potentially ok with this change, however it needs a test case.

@TooTallNate Thanks for replying! I rename the ENV from 'ZEIT_FUN_MIRRORS_NODE' to 'ZEIT_FUN_NODE_MIRROR' and add test for this feature.


Ok cancel editwidget

ok-cancel in widget level,while updating the existing widgets user can cancel or save his changes.
editScope.definition = angular.copy(definition);

note: added saveDialog function which will save his changes to adf
editScope.saveDialog = function() {
definition.title = editScope.definition.title;
angular.extend(definition.config,editScope.definition.config);
editScope.closeDialog();
};

I agree with this change of functionality. A quick cancel in the edit dialog will be helpful to users.

Thanks.


Chrome infinite scroll performance

Issue Summary
There appears to be a possible layout bug in Chrome that causes long delays when loading/displaying pages of our content list with infinite scroll. This screen cap demonstrates the issue where I am attempting to scroll as quickly as possible (it was particularly bad when recording, I didn't reach the bottom of the list to keep the gif short):

For comparison, here's exactly the same set of posts in safari and scrolling as quickly as possible (note it reaches the bottom of the list before Chrome even displays 1 extra page):

Performance in Firefox is similar to Safari.

Things I've ruled out:

scripts taking longer to run in Chrome - captured profiles indicate that the time spent in scripts whilst the spinner is displayed is pretty minimal compared to the length of the delay
network requests / images - profiles from both browsers and the logs in ghost indicate that the time spent in the ajax request is minimal, typical response time from the server is ~60ms. Removing images from the template to avoid the loading and 404s made no difference
rendering of list items - removing the list item component and simply rendering a <h3>{{post.title}}</h3> inside each list element still displays the same problem
layout bug - on further investigation the JS, layout + paint step is pretty quick

Scroll behaviour and timeouts stalling network connections
I've observed that when dragging with the scrollbar rather than the trackpad it's not possible to reproduce the slow behaviour.
Looking at the timeline profile I can see quite a few scroll events and timers are created, it now seems possible that those events/timers are somehow causing the stalled network requests that I've shown in my comment below
Possible layout bug?
Removing all other layout to leave only the scrollable element with the same styling does not exhibit the dire performance illustrated above. This leads me to think that there may be a bug in Chrome's layout engine that is being triggered by something in our surrounding styles/HTML, perhaps something to do with flexbox and an expanding element? I've not had much luck confirming this via profiling, the profiles appear to show Chrome sitting there doing nothing for quite a while before a very quick paint step.
Steps to Reproduce

Import a large number of posts into the blog
Load the content screen
Scroll

Technical details:

Ghost Version: master (a degree of this is also visible in LTS but the scroll behaviour has been improved in master)
Browser/OS:

Chrome 55.0.2883.95 / macOS 10.12.3
Chrome 56.0.2924.87 / macOS 10.12.3
Chrome Canary 58.0.3000.0 / macOS 10.12.3

I'm now wondering if this is a layout bug or if something else is going on. This timeline profile indicates that the page load request took 3.5s from kicking off the request to receiving the data during which time the spinner was showing. However, inspecting the actual network request shows it took only 108ms...

To confirm stalled network requests I added some instrumentation to ember-infinity's _loadNextPage route method. These are the results comparing Safari (all mouse scrolling) and Chrome's difference between mouse scrolling and scrollbar scrolling...

After some more investigation I think I'm running into this behaviour http://stackoverflow.com/questions/35024301/xhr-settimeout-promise-not-finishing-until-scrolling-stops-in-chrome
I am consistently able to increase the loading time by scrolling while the network request is being triggered. If I disable Chrome's "threaded scrolling" so that scroll events happen on the main thread the effect is even more pronounced, to the point where I can almost prevent the next page from loading indefinitely.
I backed up my conclusion by modifying _shouldLoadMore to always return true so that on refresh  every page is loaded sequentially. Without scrolling every page is loaded in ~60ms, as soon as I start using the scroll wheel whilst the pages are loading the loading time jumps, if I continuously scroll up and down a little the next page never loads although interestingly my _loadNextPage timer only reports a delay of a few seconds once I stop scrolling.

Confirmed the slow infinite scroll loading in LTS is caused by the same setTimeout/XHR blocking behaviour in Chrome as we're seeing since the switch to ember-infinity.
I've tested removal of Ember.run.debounce (setTimeout) and replacing it with requestAnimationFrame in ember-infinity to no avail, it seems that it's definitely the XHR that is being blocked rather than usage of setTimeout. Strange thing is that the request is delayed for a period even after scrolling has stopped which results in a worse experience than if the request was kicked off immediately after scrolling - this doesn't sound like normal behaviour but I have been able to prove otherwise yet.
There's a long discussion on a related chrome bug report that has been going on for >1 year https://bugs.chromium.org/p/chromium/issues/detail?id=570845
Things to look into:

[ ] do we have touch events that are causing us to be throttled more heavily
[ ] re-run the isolated scroll container to see if that provides any insights now there's more information about what the actual problem is
[ ] how are others handling this? We can't be the only app to be struggling with infinite scroll in Chrome

I eventually tracked this down to a Chrome "optimisation" behaviour that is enabled when you have touch event handlers registered. Disabling touch events in Ember's EventDispatcher solved the problems I was seeing:
let App = Application.extend({
    Resolver,
    modulePrefix: config.modulePrefix,
    podModulePrefix: config.podModulePrefix,

    customEvents: {
        touchstart: null,
        touchmove: null,
        touchend: null,
        touchcancel: null
    }
});

Another confounding factor which may/may not have been an issue I noticed when profiling - Chrome seemed to be flagging long frames (~30ms) when scrolling, as far as I can tell that time was taken up entirely by Chrome's scrollUpdate and mouseWheel events, there was only a ms or two that were JS related and it was the same when I'd removed ember-infinity to test. I bring this up as I've seen mention that the delayed setTimeout and xhr behaviour can be triggered when frames are taking >16ms.

Closed via https://github.com/TryGhost/Ghost-Admin/commit/0affec39320f85c94ab54e85fb8bb4103ef41947

Hi @kevinansfield,
Thanks for this complete debug. I was wondering if disabling touch events really solved the problem ? I'm facing the same issue on a side project and I make no difference 😞
Thanks !

@thomasdurin I just fixed this issue in my Angular application by shamefully modifying the Angular source code to use requestAnimationFrame instead of calling setTimeout with a low or undefined ms.
self.defer = (fn, ms) => {
  return (ms || 0) < 16 ? window.requestAnimationFrame(fn) : window.setTimeout(fn, ms)
}

@m59peacemaker Which file in the Angular source code did you modify? We are running into the same issue and desperately looking for a solution... Thanks!

Mine was in the ionic bower package, ionic.bundle.js, but I think this is the file in the non-bundled Angular source.
https://github.com/angular/angular.js/blob/a03b75c6a812fcc2f616fc05c0f1710e03fca8e9/src/ng/browser.js#L322
You just need to make it use requestAnimationFrame when the timeout is a small one as in my above code.

So, go to https://github.com/angular/angular.js/blob/a03b75c6a812fcc2f616fc05c0f1710e03fca8e9/src/ng/browser.js#L322
And changing it to this should help:
  var efficientTimeout = (fn, ms) => (ms || 0) < 16
    ? window.requestAnimationFrame(fn)
    : window.setTimeout(fn, ms)

  self.defer = function(fn, delay) {
    var timeoutId;
    outstandingRequestCount++;
    timeoutId = efficientTimeout(function() {
      delete pendingDeferIds[timeoutId];
      completeOutstandingRequest(fn);
    }, delay || 0);
    pendingDeferIds[timeoutId] = true;
    return timeoutId;
  };

Thanks for the quick reply! We are actually in Angular 2, but maybe I can find a similar workaround there. Thanks again!

I experienced a similar problem with my own app in React. I stumbled across this post looking for a solution. My issue was related to "Content Download" and infinite scrolling. Disabling the touch events did not work for me, but Chrome honors the mousewheel event despite the fact that most other browsers don't. I put a conditional e.preventDefault() on the event and that seems to have done the trick.
window.addEventListener("mousewheel", (e) => {
    if (e.deltaY === 1) {
        e.preventDefault()
    }
})

I am still not 100% sure as to how this directly impacted the scroll event in Chrome. Here is a more in-depth response on stack overflow.

@m59peacemaker I came across this issue in my AngularJS app with a custom lazy template loader. I really like your solution, but didn't want to modify the Angular.js file directly. So instead, during the config phase of the application, I copy the $window service and modify the setTimeout to your efficientTimeout function. Then it's just a matter of overriding the $browserProvider to return the $browser service instantiated with the modified $window service.
Hope this help someone. :)
let $window = $windowProvider.$get();
let $modifiedWindow = Object.assign({}, $window);
$modifiedWindow.setTimeout = (fn, delay = 0) => delay < 15 ? window.requestAnimationFrame(fn) : window.setTimeout(fn, delay);

let [browserProvider] = $browserProvider.$get.slice(-1);
$browserProvider.$get = /*@ngInject*/ ($log, $sniffer, $document) => browserProvider($modifiedWindow, $log, $sniffer, $document);


diffeqsolve time parameters

Wondering if this is desired behaviour:
The following fails because t0 and t1 only accept scalars. However, the code below used to work for older versions of jax/equinox/diffrax (not sure at which level this breaks):
from diffrax import diffeqsolve, Dopri5, ODETerm, SaveAt, PIDController

vector_field = lambda t, y, args: -y
term = ODETerm(vector_field)
solver = Dopri5()
saveat = SaveAt(ts=[0., 1., 2., 3.])
stepsize_controller = PIDController(rtol=1e-5, atol=1e-5)

ts = np.array([0.0, 3.0])
sol = diffeqsolve(term, solver, t0=ts[0], t1=ts[1], dt0=0.1, y0=1, saveat=saveat,
                  stepsize_controller=stepsize_controller)

Output:
_ValueError                                Traceback (most recent call last)
/Users/marcel.vangerven/Code/github/artcogsys/tutorials/simple_ode.ipynb Cell 3 line 1
7 stepsize_controller = PIDController(rtol=1e-5, atol=1e-5)
9 ts =np.array([0.0, 3.0])
---> 10 sol = diffeqsolve(term, solver, t0=ts[0], t1=ts[1], dt0=0.1, y0=1, saveat=saveat,
11                   stepsize_controller=stepsize_controller)
File ~/opt/anaconda3/envs/research/lib/python3.10/site-packages/equinox/_jit.py:107, in _JitWrapper.call(self, *args, **kwargs)
106 def call(self, /, *args, **kwargs):
--> 107     return self._call(False, args, kwargs)
File ~/opt/anaconda3/envs/research/lib/python3.10/site-packages/equinox/_jit.py:103, in _JitWrapper._call(self, is_lower, args, kwargs)
101         out = self._cached(dynamic, static)
102 else:
--> 103     out = self._cached(dynamic, static)
104 return _postprocess(out)
[... skipping hidden 13 frame]

File ~/opt/anaconda3/envs/research/lib/python3.10/site-packages/diffrax/integrate.py:572, in diffeqsolve(terms, solver, t0, t1, dt0, y0, args, saveat, stepsize_controller, adjoint, discrete_terminating_event, max_steps, throw, solver_state, controller_state, made_jump)
570     with jax.ensure_compile_time_eval():
571         pred = (t1 - t0) * dt0 < 0
--> 572     dt0 = eqxi.error_if(dt0, pred, msg)
574 # Backward compatibility
...
--> 264     raise ValueError("No arrays to thread error on to.")
265 dynamic_x = _error(dynamic_x, pred, index, msgs=msgs, on_error=on_error)
266 return combine(dynamic_x, static_x)
ValueError: No arrays to thread error on to._

Upgrade to the latest Diffrax. This is a known bug when using an old Diffrax version with a  new Equinox version.


Transitive Dependency System.Net.Http 4.3.0 contains vulnerabilities according to Checkmarx

See https://devhub.checkmarx.com/cve-details/CVE-2018-8292/
I'm using the latest version (2.5.0):

DotNetEnv is entirely local to your system, never accessing anything remote via http or otherwise. I don't know what is including this by checkmarx's evaluation, but this has no relevance to the code paths in this library.

This was a duplicate of $68 and I forgot to mark it as such. (Adding now for tracking)

Why does dotnet env need System.Net.Http anyway, if it's accessing local only?

Why does dotnet env need System.Net.Http anyway, if it's accessing local only?

Because we have a dependency on Sprache, which itself uses an out of date, and vulnerable, version of that library. So we manually update it to avoid the vulnerability warnings, per the linked issue.
Added comment to help others https://github.com/tonerdo/dotnet-env/commit/18051317d2ddd87d2dc075c8a55e98cf35fce6e1


Tooltip doesn't show up while hovering

I just pip upgraded Superset from version 0.28 to 0.30 and I had some issues that needed to be addressed like Tz-aware datetime.datetime cannot be converted to datetime64 unless utc=True in charts that contained data from a time column defined as DATE. My database is Postgresql so I read an issue on that problem and changed utc variable value in the Viz.py file to True like this:
df[DTTM_ALIAS], utc=True, format=timestamp_format and dttm_col, utc=True, unit=unit, origin="unix"
Then I had Server Error 500 when I tried to open my old dashboards for which I ran superset db upgrade in order to solve it.
Finally I got a  There was an issue fetching the favorite status of this dashboard message popping up when opening a dashboard, I solved it by running superset init before starting the server.
Environment
(please complete the following information):

superset version: 0.30.0
python version: python 3.6.8
node.js version: v8.10.0
npm version: 3.5.2

Checklist
Make sure these boxes are checked before submitting your issue - thank you!

[y] I have checked the superset logs for python stacktraces and included it here as text if there are any.
[ y] I have reproduced the issue with at least the latest released version of superset.
[ y] I have checked the issue tracker for the same issue and I haven't found one similar.

Additional context
Add any other context about the problem here.

It was a browser issue worked fine on chromium


1.3 As an authenticated user, I want to modify my personal information on my account

As an authenticated user, I want to modify my personal information on my account.
Acceptance Criteria:

Verify that the user can modify the name

Verify that the user can modify the picture that was uploaded either by Facebook or Google.

Verify that the user can upload a profile picture if they did not do it at the time of creating the account.

Verify that the user can modify the profile picture that was uploaded by themselves.

Verify that the user can see the addresses they saved earlier and edit them (Note that editing a saved address doesn’t mean that the address will be updated in all of the requests that previously used the address)

ZenHub Information
This information is updated automatically. To modify it, please use ZenHub.
Belonging to Epics:

[EPIC] #910 - Authentication and Profile

@milkrong expressed interest in working on this!


Publish to hex.pm

Would it be possible to publish backoff to hex.pm?

I have to go through all my repos and publish them sooner or later. I've had that on a to-do list for weeks now.


Option to not automatically connect client to server

Feature request

Add an autoConnect field to the client options object which defaults to true
Add a start() method on the client which opens the connection or no-ops if it is already open

Justification
In event driven interfaces proper design stipulates that you should be able to set all of your event handlers before it is possible for such events to occur. The current behavior of automatically opening a connection to the redis server when creating a client violates this rule; we need to create a client before we can set its event handlers, but the very act of creating a client can trigger events such as the ready or connect events. Getting your handlers on these events to fire is now a race condition of whether or not your code is able to set them before the event occurs.
Take the example below...
const client = redis.createClient();

// RACE CONDITION: if the 'ready' event occurs before the next
// line of code executes, then myEventHandler will not fire

client.once('ready', myEventHandler);

What we need instead is something like this...
const client = redis.createClient({ autoConnect: false });

client.once('ready', myEventHandler);

client.start();

I understand your thought process, but if you look at the source, createClient() calls node's native net.createConnection() under the hood, which is an explicitly asynchronous operation. The runtime is guaranteed to finish executing the current function to completion before returning to the event loop.
In other words, your first example above is not a race condition like you've suggested. THIS would cause a race condition:
const client = redis.createClient();

getSomeExternalAsyncDataThatYouNeed(function(){
  client.once('ready', yourEventHandler);
});

The runtime is guaranteed to finish executing the current function to completion before returning to the event loop.

Let me make sure I understand correctly. In my first example main() is pushed on the stack, then createClient() is pushed and popped, then once() is pushed and popped, then main() is popped, and now the stack is clear so the event loop can push the ready event handler onto the stack which it could not do until now, so no race condition. Am I describing your explanation correctly?

In my first example main() is pushed onto the stack, then createClient() is pushed and popped, then once() is pushed and popped, then main() is popped and now the stack is clear

Yup.

and now the stack is clear so the event loop can push the ready event handler onto the stack

Nope. Once the stack is clear, (and only once the stack is clear) will events emitted by the client object be processed. So on the next event tick after main() returns (ie the callback will already be bound to the ready event), the "ready" event emitted by the client will be processed.


Remove dead bundle code [#178284429]

Removed all controllers, helpers, policies and specs for the dataservice bundle
Added migration to remove all tables and columns related to the removed code

@scytacki Noah and I think you should pack some sandwiches before this review.
We feel pretty confident in all the changes - we tried to be very methodical.  Tests are green!

@scytacki / @knowuh while reviewing our notes from yesterday when starting the next story I realized we left the last step off - the migration to remove the unneeded tables and columns.  I'll add that now.

I've added the migration to remove the models/columns. (https://github.com/concord-consortium/rigse/pull/1024/commits/94452fd295f2386ee9495b4c2e26179c1e31c6fb)

@scytacki - we do have one last task:

figure out alternative for learner#calculate_last_run (did use various bundle updated_at times)

we switched it to use last_run in this PR.  Thoughts?

I missed one table when removing the bundle_content_id column so I added a commit that updates that migration: https://github.com/concord-consortium/rigse/pull/1024/commits/c896db9bdc6f9a69da9cecd25e2815bbed196e02

OK I think we are ready for another review.
Because this is a big PR, I think we only need to re-review the changes requested  ( aab79bb → 3a9e6d6 )
Because I did it without @dougmartin maybe he should review along with @scytacki
master merge and rebase:
Rails6 had master merged into it on 2021-06-21.  This PR wasn't merged yet, so I rebased it on the updated Rails6 for ease of review.
Addressing PR requests:
Remove unused run_status and launch routes & actions:

https://github.com/concord-consortium/rigse/pull/1024/commits/aab79bb8a7f2eb0f433ac24ef648f127e51180e4
https://github.com/concord-consortium/rigse/pull/1024/commits/4139d83b8c9647ef873624738af3d6e6c99bf429
https://github.com/concord-consortium/rigse/pull/1024/commits/ab2e2679f4e090b5ceadd9d430ee6b3432c34146

Re-add the learners to eager fetch of the active_users query:

https://github.com/concord-consortium/rigse/pull/1024/commits/b6b593d9b2d6988d6fb7a84b24af65f1df68979b

Fixes to last_run:

https://github.com/concord-consortium/rigse/pull/1024/commits/9c23cdbfa93cd1789409458a1be94d6c97b66da7
https://github.com/concord-consortium/rigse/pull/1024/commits/3a9e6d6795cc77f63ef65cd360df26330a95e0b0

New commits look good :+1:


Clean up code blocks in READMEs

I just noticed @confused-Techie did a version of this as part of #79, but I was already done with this and I thought I'd just toss it out here and see what people think. This is a follow-up to #78, which I filed a few days ago.
This PR:

removes syntax highlighting for inline code elements and for fenced backticks that do not declare a language. (The auto flag means that highlightjs will guess at the language — and often guess wrongly. GitHub doesn't guess at the language when rendering these READMEs, so I don't think we ought to guess either.)
Removes the backticks that @tailwindcss/typography inexplicably puts around inline code elements.
Tries to resolve the style conflicts between highlightjs and @tailwindcss/typography by putting the former in control. The strange bezel-looking thing around pre blocks happens because @tailwindcss/typography wants them to be black, but highlightjs wants them to be white:

To fix this, I removed the bezel altogether and replaced it with a subtle var(--secondary) border:

This approach seems to work quite well in each of our four themes.
Hey, here's a thought: at a certain point we'll be undoing so many of @tailwindcss/typography's defaults that we could broach the idea of getting rid of it altogether. But that's a topic for another time.

Thanks for this! I'll take some time to review it and test it out.
And honestly hopefully we can get our two PRs to work together, since personally I love the style used for inline code blocks over on mine, but absolutely love getting rid of the borders here.
As for the @tailwindcss/typography I'm not to attached to it personally. We would just need to make sure we don't have any bad regressions, but I wouldn't be opposed to seeing a PR addressing it, if we ever wanted to tackle it.
But as always thanks for this!

Just promise me we can get rid of the backticks, OK? 😟

Just promise me we can get rid of the backticks, OK? 😟

Aha of course, we can get rid of them on the code blocks. Do you mind them on the inline code as well?

They're only present on the inline code right now. I don't understand the goal of the person who had that idea. I put backticks around something because that's how you indicate a code element in Markdown — not because I want actual backticks around it in the generated text.

They're only present on the inline code right now. I don't understand the goal of the person who had that idea. I put backticks around something because that's how you indicate a code element in Markdown — not because I want actual backticks around it in the generated text.

Ahh yeah good point, for some reason I remembered them appearing elsewhere as well.
But yeah lets get rid of them, doesn't make much sense for them to be there.

So I'm wanting to get this and my PR of the same theme both merged in, but wanted to check in, is there a specific reason we needed to add some of the CSS to the tailwind.config.js rather than to the site.css?
If that's because the tailwind data is parsed first and adds content (```) before we can remove it then that makes sense. Although mostly I'd like to try to keep configurations all in one place if we can help it. Otherwise if that's what we need to do to remove the backticks and restore theming control to highlight-js then that makes sense.

My thinking was that it made more sense to tell Tailwind not to apply some of the styles in the first place instead of trying to undo them bit-by-bit with overriding CSS.

My thinking was that it made more sense to tell Tailwind not to apply some of the styles in the first place instead of trying to undo them bit-by-bit with overriding CSS.

Yeah fair enough that makes sense. Just wanting to make sure there was good cause for it, thanks!

Looks great. 👍


Could not understand address in import file

So, I found a really old doge wallet (created around 2017) and I think I know the password, because when I enter it and click "Unlock" It doesn't give any error, but when I finally click Import private keys I get this error:
The private keys unlock failed. The error was "Could not understand address in import file".
Any help?

maybe it is not a multidoge backup? what's the file extension? you may reach btc recover on twitter to help you, good luck


Release vutils-yaml 0.1.4

ssia

Coverage: 100.0%. Remained the same when pulling bdd156b6c9d5de25656b4fb62d98317ee3517ce2 on minor-adjustments into 6ff9598f12a4cde53a61c57f5f8ee33c118b2776 on main.


[tools] Sync web runner to latest to support W3C sub-tests

https://github.com/testkit/webrunner/commit/5ae225043ee9ed0b3e7be908a3ebf3a1494e4ba6
https://crosswalk-project.org/jira/browse/XWALK-4770

The commit message should be updated as something like:

[tools] Sync web runner to latest to support W3C sub-tests
https://github.com/testkit/webrunner/commit/5ae225043ee9ed0b3e7be908a3ebf3a1494e4ba6

Please also make sure it is the latest https://github.com/testkit/webrunner

@zqzhang  I have updated it following your comments

@haoxli told me offline that the sub-case support has no impact on existing test cases running.


Build error due to failed patch on rviz-ogre-vendor

Building
ros2-humble for Yocto mickledore ( aarch64le )
when processing layer for rviz2 getting the error in colsole:
ERROR: rviz-ogre-vendor-11.2.8-1-r0 do_patch: Applying patch '0001-CMakeLists-remove-all-ExternalProject_Add-calls-and-.patch' on target directory '/media/mlytvynyuk/2TB/workspace/yocto/build/tmp/work/cortexa57-poky-linux/rviz-ogre-vendor/11.2.8-1-r0/git'
In patch log:
NOTE: Applying patch '0001-CMakeLists-remove-all-ExternalProject_Add-calls-and-.patch' (../poky/meta-ros/meta-ros2-humble/recipes-bbappends/rviz/rviz-ogre-vendor/0001-CMakeLists-remove-all-ExternalProject_Add-calls-and-.patch) ERROR: Applying patch '0001-CMakeLists-remove-all-ExternalProject_Add-calls-and-.patch' on target directory '/media/mlytvynyuk/2TB/workspace/yocto/build/tmp/work/cortexa57-poky-linux/rviz-ogre-vendor/11.2.8-1-r0/git' CmdError('quilt --quiltrc /2TB/yocto/build/tmp/work/cortexa57-poky-linux/rviz-ogre-vendor/11.2.8-1-r0/recipe-sysroot-native/etc/quiltrc push', 0, 'stdout: Applying patch 0001-CMakeLists-remove-all-ExternalProject_Add-calls-and-.patch patching file CMakeLists.txt Hunk #1 FAILED at 6.
Here is my ROS related chunk from local.conf
# ROS2 Humble core
CORE_IMAGE_EXTRA_INSTALL += " \
  ros-core \
  ignition-math6-vendor \
  ignition-cmake2-vendor \
  angles \
  dummy-sensors \
  demo-nodes-cpp \
  rviz2 \
  "

Thank you for looking into this.
My idea is to run all this on aarch64le based board, including visualization.

I will add more details:
This is an attempt to run Ros2/Rviz in yocto linux which runs under QNX hypervisor on aarch64 architecture.
Also we have solved yocto and qt and 3d acceleration
Using this repo I have successfully build image with yocto+ros2.
Addid rviz layer causing all sort of unmet dependencies.
namely ignition math6 ( which I tried to hack-around ) as well as other ignition packages

I do have some unfinished work where I was adding 37+ new recipes to introduce ignition and some of its dependencies.  The challenge is all the optional graphics libraries and other optional dependencies that aren't already in Yocto/OpenEmbedded.  You can use recipetool to make it easier, but it is still significant work to get going.
The work I did was for Humble+Kirkstone, however it should provide a path to getting it working on Humble+Mickledore.   I estimate that it could be either days or weeks of work depending on your familiarity with Linux and/or Yocto.   Does that help?  If that's a challenge you're willing to take on, let me know.

Hi @robwoolley
I am also doing a side project using Yocto + ROS2 (humble kirkstone) on Turtlebot3, and seeing that lots of ignition or gazebo dependencies are missing as reported on my machine.
My host machine: ubuntu 22.04
ROS setup steps: https://github.com/ros/meta-ros/wiki/OpenEmbedded-Build-Instructions
Ignition package install: https://gazebosim.org/api/math/6.4/install.html
Here are my project configurations
local.conf.txt
bblayers.conf.txt
When trying to build turtlebot3

NOTE: Runtime target 'rviz2' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['rviz2']
NOTE: Runtime target 'turtlebot3-bringup' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['turtlebot3-bringup', 'rviz2']
ERROR: Required build target 'turtlebot3' has no buildable providers.
Missing or unbuildable dependency chain was: ['turtlebot3', 'turtlebot3-bringup', 'rviz2']

When trying to build rviz2

ERROR: Nothing PROVIDES 'rviz2'
rviz2 was skipped: Recipe will be skipped because: qt5: depends on qtbase; opengl: depends on rviz-ogre-vendor which depends on mesa which is not available because of missing opengl or vulkan in DISTRO_FEATURES; x11: depends on rviz-rendering which depends on rviz-ogre-vendor which depends on libx11,libxrandr,libxaw which require x11 in DISTRO_FEATURES; ignition: depends on rviz-default-plugins which depends on unavailable ROS_UNRESOLVED_DEP-ignition-math6

These error also occurs whenever I am trying to build any graphics things

Hi Weiheng,
Glad to hear from you.  I have had the simulation tools like RViz and Gazebo running on Yocto in past releases (foxy or galactic if memory serves).  It is on my list of things to look at next.
I would be interested in hearing more about the use case because running a desktop on the robot itself seems unusual to me.  I would have assumed that you might run rviz2 and Gazebo on a laptop with a GPU running Ubuntu and connect over the network to your robot.  Can you tell me more about why running the simulation directly on the robot supports your work?
As far as build instructions are concerned, I just recently added support for using kas.  You may find it easier to automatically set up an environment: https://github.com/ros/meta-ros/blob/build/kas/README.md
Regards,
Rob

Hi @robwoolley
Sorry for the confusion. Ubuntu 22.04 is just my host machine to build the Yocto ROS2 project (humble + kirkstone). Actually I can install rviz2 and gazebo directly on ubuntu via apt. I didn't intend to build it into my robot image.
What I tried was just to build some default image like turtlebot3 or ros-image-world according to the instruction here: https://github.com/ros/meta-ros/wiki/OpenEmbedded-Build-Instructions.
However, when building these targets, it threw some dependency chain error like
Missing or unbuildable dependency chain was: ['turtlebot3', 'turtlebot3-bringup', 'rviz2']

That's why I also tried bitbake rviz2 then reached the ignition dependency error.

I have a Turtlebot3 myself and was planning on trying to get it working again for the upcoming Jazzy release.
May I suggest that you file a new issue for addressing the missing support for Turtlebot3?  We can work towards adding the missing packages there.
In the mean-time, if you just want to get ROS 2 Kirkstone + Humble running on the board, I suggest following these build instructions instead: https://github.com/ros/meta-ros/blob/build/kas/README.md
It will build ros-image-core which I have recently verified will work.  The ros-image-world literally builds everything and is more intended for nightly builds to look for regressions.  We are still working on fixing some outstanding packages to get it working 100%.

@robwoolley Thank you so much! I will file the issue. At the same time, could you suggest a previous version that works on turtlebot3? We are actively working on a project so want to bring up the bot asap


[parasol islands - homebrew] fails to start

seems to crash on an almost all white screen, minus the black bar along the top

https://format-c.itch.io/parasol-islands

this seems to be fixed, not sure as to which commit solved it


FluentLight Theme ToggleButton Checked color changed to white

This was a dark colour in earlier releases, it looks like it has just been copied from the dark theme.

How are you reproducing this?

A standard ToggleButton shows it.  Control catalog sort of shows it even though it is a bit broken in LightFluent.
https://github.com/AvaloniaUI/Avalonia/blob/b575818e7e631d702ccebfd6372a41216bfb0711/src/Avalonia.Themes.Fluent/Accents/FluentBaseLight.xaml#L92
is the cause I guess.

A standard ToggleButton shows it. Control catalog sort of shows it even though it is a bit broken in LightFluent.
https://github.com/AvaloniaUI/Avalonia/blob/b575818e7e631d702ccebfd6372a41216bfb0711/src/Avalonia.Themes.Fluent/Accents/FluentBaseLight.xaml#L92
is the cause I guess.

How are you changing to the LightTheme?

In control catalog with the combo boxes at the bottom right.  It looks fairly clear from the styles that it is being set to white.

Assuming this is by design although it is not the mirror of dark mode.


Excel remains open after import

When importing excel documents into PowerShell it seems like the last open excel document remains open until either the PowerShell window is closed or a new Excel document is opened (but this is not always consistent).
Is there a way to either close the current excel document (force it to close) or should the excel document be closed after the import happens?

No, there's no way to force a close. It should close the doc after each invocation. There is no testing for errors. Maybe it is getting an error when it imports, errors out and never closes?

Interesting. I do not see any errors from the import of the Excel files. The command I use to import the files is Import-excel -path $FileName -WorkSheetname 'Office Timesheet' | Select-Object -First 50 (I have chosen to do the select-object because the creator of the spreadsheet has put a LOT of extra info at the end of the sheet - 200+ lines - that is not really needed).
Hum. Now that I tried it with out the  "| Select-Object -First 50" it works correctly. I guess I will have to keep that part commented out so that I can move the spreadsheets once they have been processed.

Try wrapping the left hand side of the pipe in parens and see if that helps.
(Import-excel -path $FileName -WorkSheetname 'Office Timesheet') | Select-Object -First 50

Sorry for not coming back and reporting on the results. Wrapping the left hand of the pipe worked perfectly! Thank you very much for the suggestion.


chore: Testing graphite

Foobar

#4933  👈
master

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

Join @spalladino and the rest of your teammates on  Graphite

Benchmark results
No metrics with a significant change found.

Detailed results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
Values are compared against data from master at commit c9eb856a and shown if the difference exceeds 1%.
L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
8 txs
32 txs
64 txs

l1_rollup_calldata_size_in_bytes
5,700
18,884
36,452

l1_rollup_calldata_gas
66,096
238,892
469,688

l1_rollup_execution_gas
194,044
500,198
908,946

l2_block_processing_time_in_ms
1,206
4,532 (-1%)
9,159 (+1%)

note_successful_decrypting_time_in_ms
200 (-1%)
558 (+3%)
1,031 (+4%)

note_trial_decrypting_time_in_ms
9.91 (-5%)
81.3 (+28%)
61.6 (-53%)

l2_block_building_time_in_ms
15,993
63,666 (-1%)
127,342 (-2%)

l2_block_rollup_simulation_time_in_ms
12,153
48,365 (-1%)
96,907 (-2%)

l2_block_public_tx_process_time_in_ms
3,809 (+1%)
15,227 (-2%)
30,260 (-2%)

L2 chain processing
Each column represents the number of blocks on the L2 chain where each block has 16 txs.

Metric
5 blocks
10 blocks

node_history_sync_time_in_ms
14,777 (-2%)
27,132 (-3%)

note_history_successful_decrypting_time_in_ms
1,240 (-8%)
2,409 (-1%)

note_history_trial_decrypting_time_in_ms
93.3 (+1%)
143 (-7%)

node_database_size_in_bytes
18,751,568
35,541,072

pxe_database_size_in_bytes
29,923
59,478

Circuits stats
Stats on running time and I/O sizes collected for every circuit run across all benchmarks.

Circuit
circuit_simulation_time_in_ms
circuit_input_size_in_bytes
circuit_output_size_in_bytes

private-kernel-init
248 (-1%)
44,736
28,001

private-kernel-ordering
178 (-1%)
52,625
14,627

base-rollup
1,283 (-2%)
177,932
933

root-rollup
72.3 (+2%)
4,192
825

private-kernel-inner
314 (-1%)
73,715
28,001

public-kernel-app-logic
192 (-1%)
32,254
25,379

merge-rollup
5.78
2,712
933

Tree insertion stats
The duration to insert a fixed batch of leaves into each tree type.

Metric
0 deployed contracts

tx_size_in_bytes
19,179

Transaction processing duration by data writes.

Metric
0 new note hashes
1 new note hashes

tx_pxe_processing_time_ms
2,562 (-2%)
1,358 (-1%)

Metric
0 public data writes
1 public data writes

tx_sequencer_processing_time_ms
0.0321 (+7%)
470 (-1%)


Run teardown in the post step

Execute teardown in the post step to allow users of the workflow to run tests against provisioned env.

post step doesn't work in regular actions, it only work in javascript based actions


Installation and Managment tool for Task Force Elite

Feature Request
I would like to see automation with Task Force Elite Installation etc..
Feature Information:  https://www.taskforceelite.com/topic/50-linux-server-tool-hosting-guide/

I confirm:

[X] that I have searched for an existing feature request matching the description.

This should have been a module/application request, not a feature request. Additionally I'm not seeing anything here that the Generic module couldn't handle.

This should have been a module/application request, not a feature request. Additionally I'm not seeing anything here that the Generic module couldn't handle.


[Inbound Calling] Inbound a11y fixes

What

Fixes to the Inbound Calling stack and incoming Call notification

tab indexes
Narratation

Why

Addresses A11y concerns in

https://skype.visualstudio.com/SPOOL/_workitems/edit/3855362
How Tested

Validated locally & Bug bash to come

LGTM! I was trying to test Notification Stack in storybook but I could only find the Incoming Call Modal. For that, I was not able to tab to the Accept and Decline buttons but that is for a separate PR
https://github.com/user-attachments/assets/43eb4888-639d-45f3-8c88-5fe26847c06a

LGTM! I was trying to test Notification Stack in storybook but I could only find the Incoming Call Modal. For that, I was not able to tab to the Accept and Decline buttons but that is for a separate PR
2024-08-26.09-50-04.mp4

Just leaving a comment here, you will find the intended changes in the INTERNAL folder for components. Didn't remove the old modals yet, wanted to get Alex's opinion before I go deleting them.


Extending NetworkService API to allow for Chaining

This takes inspiration for Istio VirtualService.
Currently, NetworkService CRs look roughly like:
kind: NetworkService
metadata:
  name: secure-intranet-connectivity
spec:
  payload: IP

Basically, each NetworkService has a name and a payload type.
If more than one NetworkServiceEndpoint provides a NetworkService, in response to a request for a Connection to a Network Service from a NetworkServiceClient, the nsmd round robins among them.
There are lots of cases however where it is helpful to have more control, to be able to Chain together NetworkServiceEndpoints (NSEs) to provide a single Network Service:

This issue is about putting together a basic extension to NetworkService to allow us to build such chains.
Each Network Service Endpoint when it advertise itself includes a set of labels.  For the purpose of this discussion, lets call those destinationLabels.
Each Network Service Client with it requests a Connection to a NetworkService includes a set of labels.  For the purposes of this discussion, lets call those sourceLabels.
We can extend the Network Service to be more like:
kind: NetworkService
metadata:
  name: secure-intranet-connectivity
spec:
  payload: IP
  matches:
  - match:
    sourceSelector:
        app: firewall
    route:
      - destination:
          destinationSelector:
            app: vpn-gateway
  - match:
    route:
      - destination:
          destinationSelector:
            app:firewall

Now when selecting the Network Service Endpoint to connect an NSC to, the nsmd goes through the 'matches' until one matches.
So when a Client Pod, which has no sourceLabel "app=firewall" requests a connection, it will fail the first match.  The second match, which has no sourceSelector will match any connection, so it matches, and the Client Pod is connected to a Network Service Endpoint that has a destinationLabel "app=firewall".
The Firewall Pod itself has to request "secure-intranet-connectivity".  It makes such a request, but it has in its sourceLabels "app=firewall".  When the nsmd seeks to select a NetworkServiceEndpoint for the Firewall Pods request, it will match the first match, and select a Network Service Endpoint with "app=vpn-gateway".
This allows a simple flexible way to make selection decisions for L2/L3 Connections.
Let's extend this with one further by allowing multiple 'destinations' in a route with weights:
kind: NetworkService
metadata:
  name: secure-intranet-connectivity
spec:
  payload: IP
  matches:
  - match:
    sourceSelector:
        app: firewall
    route:
      - destination:
          destinationSelector:
            weight: 90
            app: vpn-gateway
            version: v1.0
      - destination:
          destiinationSelector:
            weight: 10
            app: vpn-gateway
            version: v2.0
  - match:
    route:
      - destination:
          destinationSelector:
            app:firewall

In the above example, 10% of the traffic that matches sourceSelector "app=firewall" is sent to a vpn-gateway with a label indicationg its version is v2.0, the other 90% is sent to a vpn-gateway with a label indicating its version is v1.0.

Pointers for adding Extending the Network Service API to support Chaining
Please note, this Issue is for extending the API, another will be written for providing pointers on implementing selecting in the nsmd.
You will need to extend the NetworkServiceSpec.
You will need to extend the NetworkService message
You will need to enhance the translation of the NetworkServiceSpec to the NetworkServiceMessage in the RegistryServer.

I can't wait to see this in action :1st_place_medal:

So when we do the 90%/10% split we do than on connection selection level. I think it will be more correct to state that "10% of the newly established connections will go to vpn-gateway v2.0". I mean it is not traffic load balancing/splitting, it is just new connection selection that is affected.

@nickolaev You are correct.  90%/10% split is on connections, not traffic.

I'd suggest that we don't include weight in the destinationSelector, i.e. get something like this:
kind: NetworkService
metadata:
  name: secure-intranet-connectivity
spec:
  payload: IP
  matches:
  - match:
    sourceSelector:
        app: firewall
    route:
      - destination:
          weight: 90                      # weight is `destination` property now
          destinationSelector:
            app: vpn-gateway
            version: v1.0
      - destination:
          weight: 10
          destiinationSelector:
            app: vpn-gateway
            version: v2.0
  - match:
    route:
      - destination:
          destinationSelector:
            app:firewall

This make destinationSelector a labelSelector type, and leaves weight as a generic destination property.

Closed in #537


Replace uses of std::ptr_fun() which has been removed from C++17

This fixes build on C++17 on compilers that strictly follow the standard.

cc @fabiencastan


⚠ Processors has degraded performance

In 840b2e5, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 41 ms

Resolved: Processors performance has improved in e6504c4.


Like button should work only for authenticated users

Feature request-
Like button should work only for authenticated users

Note:

Do mention if your are working under GSSoC'21.
If you want to work on an issue, you should check if it has already been assigned to anyone. If the issue is free you can comment /assign to get the issue assigned to you.
If you are raising a new issue and want to work on it then also you should comment /assign under the issue to get it auto assigned.
Please refrain from adding labels to your issue/pull-request on your own. It is the job of the Project Admin and the Mentors to review your issue/pull-request and add labels accordingly.
According to the level of the issue, respective time will be allotted under which the task needs to be completed/resolved by the assigned person. If the issue is not resolved within the given time, it will be assigned to the next person. In case of any discrepancies, the decision of the maintainer will be final.

level - 0: 2 days
level - 1: 3 days
level - 2: 4 days
level - 3: 5 days

/assign I am part of GSSOC-21. I want to work on this issue. Can you please assign this issue to me?

Okay. thanks.

@jyotsana3108 what's the status of the task?

/assign

Like button works only for authenticated users, I think this issue has been solved already


Improve visibilty of the drag pane when viewed vertically

This PR fixes #2584, by making forceVerticalLayout also apply to the "Design" and "Test" tabs. Here's an overview of the changes that were made:

Rename the settings options (for consistency) as described below. (I realize the requirement listed in #2584 was to change the text to read "Force vertical layout", but "force" feels a little weird to me, as both of the settings below are supported features, not something that needs to be "forced". If that is still the desired verbiage, let me know and I'll change the PR appropriately).

"Force bulk header editor" -> "Use bulk header editor" -- This has been moved to #2717, see comments below
"Vertical request/response layout" -> "Use vertical layout"

Update CSS to apply appropriate layout for design/test in vertical mode (this was the primary issue)

One additional note: there is some custom logic in app.js to support the draggable resize bar in the Debug tab, both in the horizontal and the vertical layouts. The Design/Test tabs do not have this resize bar implemented in the horizontal layout, so I didn't bring it over for the vertical layout, either. (I couldn't think of a simple and clean way to implement it, and I didn't want to clutter app.js any further). Maybe implementing the resize bar for Design/Test could be a future improvement.
Screenshots:

Closes INS-923

this does make me think we should add information tooltips what this setting is going to change or implies for the user as without immediate visual feedback it could be un-clear compared to previous text.

Thank you for the feedback, @nijikokun, that makes sense -- I will move the bulk header editor change to another PR. I am struggling to come up with a descriptive label for the help text, though. This is the best I could muster, but perhaps someone else here will have a better suggestion:
"Stack application panels vertically instead of horizontally"

I've updated this PR pending other suggestions.

I am struggling to come up with a descriptive label for the help text. This is the best I could muster, but perhaps someone else here will have a better suggestion:

It's definitely a good start! My only suggestion is providing an example after panels, taking inspiration from the previous we could do something like:
Stack application panels (e.g. request / response) vertically instead of horizontally.

Thank you for the feedback, @nijikokun, that makes sense -- I will move the bulk header editor change to another PR.

🤗

FYI @rmsy I think there might actually be some conflicts with #2712, as that PR improves the overall layout logic of the app

FYI @rmsy I think there might actually be some conflicts with #2712, as that PR improves the overall layout logic of the app

Following up on this - it looks like with the changes introduced in #2712, forcing vertical layout seems to be fixed as a side-effect. 🤯 I really appreciate the time that you put into this fix, but with the refactoring and removal of duplication in #2712, my preference would be to go ahead with the overall fix in that PR.
I did, however, notice some border styling that you introduced in this PR, which might fix another related bug I found during recent QA - #2787. That, coupled with the re-naming changes you have suggested in preferences are still valid.

Ok, thank you @develohpanda! I will rebase this PR on top of #2712 later today and reduce the scope to include only the border fix and renames (including wording adjustment as suggested by @nijikokun). I appreciate all of the feedback 😊

Hi @rmsy, apologies for the big delays but #2712 has now been merged to develop so this should be unblocked 🙂

 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.

@develohpanda Sorry I never got around to cleaning up my branch, thanks for doing that and merging, and thanks for maintaining such a great developer tool ❤

No worries at all 😊


fix(payments): fix client secret parsing

Type of Change

[x] Bugfix
[ ] New feature
[ ] Enhancement
[ ] Refactoring
[ ] Dependency updates
[ ] Documentation
[ ] CI/CD

Description

Client secret parsing logic could create bugs changed it to avoid them.
Ideally , it will be good to pass payment_id everywhere and ask for payment_id in the request wherever applicable and never extract payment_id from client_secret. To address it in this way many changes need to be made So I have addressed the issue in this PR differently.
It would also be good to have a domain type for client secret #1357 issue is created for it.
Do let me know if payment id is extracted from client secret else where in the codebase. I have done a basic search and changed it wherever I found.
Also I have used this error ClientSecretInvalid for now. Once we have domain type and appropriate error would be raised during Deserialising. But do let me know if new error should be created for this.
Additional Changes

[ ] This PR modifies the API contract
[ ] This PR modifies the database schema
[ ] This PR modifies application configuration/environment variables

Motivation and Context

How did you test it?

Added and Ran tests succesfully
Checklist

[x] I formatted the code cargo +nightly fmt --all
[x] I addressed lints thrown by cargo clippy
[x] I reviewed submitted code
[ ] I added unit tests for my changes where possible
[ ] I added a CHANGELOG entry if applicable

what if we provide a function called find_payment_intent_by_client_secret instead of doing the client secret split and extract payment id out of it

Then we have to add index on it. We already have index on payment_id. Too many indexes on DB is not desirable.
Plus in which ever flow we have client secret it is better to accept payment_id also. I have created an issue for the same. See PR description.


Some questions about the project name and logo

@Hgwxxdd  Hello~ I am glad to see that a new vue3 UI framework is under development.
I want to know why the project is called ladder-UI and where the inspiration for the logo comes from

@Hgwxxdd Hello~ I am glad to see that a new vue3 UI framework is under development.
I want to know why the project is called ladder-UI and where the inspiration for the logo comes from

@lsbbd  Hello !  I am glad to see your question.

The name is just like the name.
This logo is currently inspired by a web image and I hope to redesign it in the future.


Bugfix: call getToken of refreshTokenGrantType only if refreshToken exists

If refreshToken is not set it not should call the method getToken, because it call the server with an empty refreshToken.

Hm. The reason for the previous logic was that you can set the 'refresh_token' directly when constructing the RefreshToken grant type. So this means there is a bit of an API change

But your example is not working, because there is no refreshToken and it works only with an refresh token...
Example
use GuzzleHttp\Client;
use CommerceGuys\Guzzle\Oauth2\GrantType\RefreshToken;
use CommerceGuys\Guzzle\Oauth2\GrantType\PasswordCredentials;
use CommerceGuys\Guzzle\Oauth2\Oauth2Subscriber;

$base_url = 'https://example.com';

$oauth2Client = new Client(['base_url' => $base_url]);

$config = [
    'username' =><EMAIL_ADDRESS>    'password' => 'test password',
    'client_id' => 'test-client',
    'scope' => 'administration',
];

$token = new PasswordCredentials($oauth2Client, $config);
$refreshToken = new RefreshToken($oauth2Client, $config);

$oauth2 = new Oauth2Subscriber($token, $refreshToken);

$client = new Client([
    'defaults' => [
        'auth' => 'oauth2',
        'subscribers' => [$oauth2],
    ],
]);

$response = $client->get('https://example.com/api/user/me');

print_r($response->json());

// Use $oauth2->getAccessToken(); and $oauth2->getRefreshToken() to get tokens
// that can be persisted for subsequent requests.

I think we can fix the bug with this solutions:

Oauth2Subscriber.php: if in onBefore method $request->getConfig()->get('refresh_token') is set we set $this->refreshToken = $request->getConfig()->get('refresh_token')
We override getToken method in RefreshToken.php and call it only if refresh_token is set.

Any news?

This was what I was thinking of, with an explicit method to check that the refresh token is available:
https://github.com/commerceguys/guzzle-oauth2-plugin/compare/master...pjcdawkins:check-refresh-token-set
So the subscriber would only try the refresh token grant type if it has a non-empty refresh token set. This seems a bit wordy, but it would do the job.

Cool, it works!
After merge https://github.com/commerceguys/guzzle-oauth2-plugin/compare/master...pjcdawkins:check-refresh-token-set we can close this pr.

Merged in https://github.com/commerceguys/guzzle-oauth2-plugin/commit/663ba6c893a4b097205257089d2a18b6918e0700
So that can be in a v2.0.1 release, which I'll make at the end of the day after a bit of testing. Thanks!


Tests: Add tests and improve coverage

Write tests for various components of the ssg

[ ] tests for helper package
[x] tests for engine package
[x] tests for parser package
[ ] tests for cmd/ package
[ ] tests for main.go

[x] Add status checks for PRs and fix netlify deploy preview

[ ] Minimum test coverage of 60% for all packages

[x] Improve engine/ test coverage

[ ] Integration tests for helper/ and cmd/

Reached 71.2% coverage with engine package : perf:154405e
Added tests for engine pacakge

[x] Remove generated test output files and ignore the directories in .gitignore
[x] Add a cleanup script to delete test output

[x] Add tests got helper/ and notes/
[x] coverage of >50% for all packages under pkg/


name quick fixes that should run on save

testing #14299
Instead (or in addition) I wonder if it would be more useful to name the quick fixes that I want to run on save. This might not be a problem today as only a small subset of problems are auto-fixable but I can see conflicts from warnings that you want to be aware of vs warning you want to auto-magically fix (think of remove unused import).

This issue was moved to Microsoft/vscode-tslint#152


Passing struct as a prop leads to panic / allocation error

Problem
The following example leads to a panic during runtime:
fn App(cx: Scope) -> Element {
    let song = Song {
        artist: "Artist".to_string(),
        title: "Title".to_string(),
    };
    debug!("{song:?}");

    render! {
        div { Child { song: &song } }
    }
}

#[derive(Debug)]
struct Song {
    artist: String,
    title: String,
}

#[inline_props]
fn Child<'a>(cx: Scope, song: &'a Song) -> Element {
    let Song { title, .. } = song;
    render! {"{title}"}
}

The error when running dx serve:
Dioxus @ v0.1.5 [18:41:54]

	> Profile : Debug
	> Hot Reload : Normal
	> Index Template : Default
	> URL Rewrite [index_on_404] : False

	> Build Time Use : 0 millis

[WARN] There were 1 warning messages during the build.
[DEBUG] dioxus_play - Song { artist: "Artist", title: "Title" }
thread 'main' panicked at 'encountered allocation error: Layout { size:<PHONE_NUMBER>78936, align: 1 (1 << 0) }', /home/rafael/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bumpalo-3.13.0/src/alloc.rs:30:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
[ERROR] dioxus_core::any_props - Error while rendering component `Child`: Any { .. }

Steps To Reproduce
I've created a minimal reproduction repo that runs into the error on my machine:
git clone git@github.com:raffomania/dioxus-allocation-error-repro.git
cd dioxus-allocation-error-repro
dx serve

Expected behavior
I'm expecting the code not to crash, or not to compile if it does something wrong.
Environment:

Dioxus version: 0.4.0
Rust version: 1.71.1
OS info: Arch Linux
App platform: desktop

Questionnaire

[x] I'm interested in fixing this myself but don't know where to start
[ ] I would like to fix and I have a solution
[ ] I don't have time to fix this right now, but maybe later

Moving to an explicit prop struct with #[derive(Props)] doesn't fix the error.

This is the same issue as https://github.com/DioxusLabs/dioxus/issues/1341. https://github.com/DioxusLabs/dioxus/pull/1345 will fix this. Closing as duplicate


Upgrade framework version 6lts

I've prepared pull request according to the issue #1.
I propose to enable multitargeting for the library. Please review changes below.

@spuchin, could you review the changes?

i would suggest add .NET standard 2.0 as well.


vulnerability fixes for Sol003

Fixes #23

Hi @swatij-ibm,@clloydaccanto .
As per your review comments ,fixed the issue and created the below PR .
https://github.com/IBM/sol003-lifecycle-driver/pull/28
Please find the low local build screen shot .

Thanks for the update @settipalli2F51 .
As per the review comment provided above : https://github.com/IBM/sol003-lifecycle-driver/pull/28#pullrequestreview-846633636

I think we shouldn't be commenting out tests, I would prefer the tests to be handled and fixed.

This repo does not have any automated Jenkins etc to check the workability of the new build. Last I recall, when vulnerabilities were fixed, before merging the changes into develop, a test install was run using a locally built image with the required changes.
Has an installation test with these changes been tested ?
If not then probably this needs to be included and done before the review and merge to validate the newly built image of sol installs fine.

Are you also looking to address the other requested changes ?
I don't see the tests updated/fixed or any information about the installation test done for the new sol image ?
Please do address all the comments and also share details of the installation test being done, before sending out for re-review and merge.

we are planning to create new PR , So closing this PR .


Apple forcing two factor authentication

Question Checklist

[X] Updated fastlane to the latest version
[X] I read the Contribution Guidelines
[X] I read docs.fastlane.tools
[X] I searched for existing GitHub issues

Question Subject

Just a note to say that as of today, it would appear apple is forcing 2 factor authentication, so these details we become more prevalent: https://github.com/fastlane/fastlane/tree/master/spaceship#app-store-connect-api

Two-factor authentication
Using app-specific passwords

@awgeorge, I created a new dev account with the dev program recently.
I used a phone to overcome this requirement and logged out afterwards.
Now it's basically 2step with SMS, although still called 2factor in AppleID setting.
And it's not possible to switch it off anymore.


Import error

ImportError: cannot import name 'CaptionProjection' from 'diffusers.models.embeddings'
can anyone please help with this errror?

ImportError: cannot import name 'CaptionProjection' from 'diffusers.models.embeddings' can anyone please help with this errror?

Maybe you can update the version of diffusers to 0.24.0 for text-to-video generation.

Hi, I've checked https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/embeddings.py, could we use PixArtAlphaTextProjection and PixArtAlphaCombinedTimestepSizeEmbeddings to replace CaptionProjection and CombinedTimestepSizeEmbeddings in your code?
Also, the cudatoolkit is not written into enviroment.yml, could you please update the environment file or provide the version of cudatoolkit?

Hi, I've checked https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/embeddings.py, could we use PixArtAlphaTextProjection and PixArtAlphaCombinedTimestepSizeEmbeddings to replace CaptionProjection and CombinedTimestepSizeEmbeddings in your code? Also, the cudatoolkit is not written into enviroment.yml, could you please update the environment file or provide the version of cudatoolkit?

If you want to use PixArtAlphaTextProjection and PixArtAlphaCombinedTimestepSizeEmbeddings to replace CaptionProjection and CombinedTimestepSizeEmbeddings in my codes, please ensure the implementation of the both are consistent.
I will update the version of  cudatoolkit into the enviroment.yml. Thank you for your reminding


FEATURE: TreeData (or Flower Nodes) with Virtual Scrolling Data Model

It sounds like ag-grid provides powerful support for master/detail as well as flower and even "nested" rows: https://www.ag-grid.com/javascript-grid-master-detail/index.php
However, everything I can find indicates that:

grouping
tree data
flower nodes
child panels
master/detail grids

all require  the In Memory data model.  This appears to limit the extensibility and functionality of ag-grid, in particular the ability to load remote/virtual data yet have it expand or display additional related information (which ideally could be fetched on demand as the row is expanded to reduce data/DOM bloat in the browser until the user actually needs to use it).
We recognize that one of the primary limitations of expanding rows in a virtual paging model is calculating the height of the "virtual" scrollbar.
However, if the "expanded" entities had a pre-defined (e.g. gridOptions.expandedContentHeight) fixed or known height, I don't see how this is any technically different than how virtual paging currently works where the overall height is "estimated" and manipulated as more information is obtained on the actual true # of data records.
A callback similar to getRowHeight could be provided for expanded content to even potentially provide dynamic expanded content row height.
Are there other technical concerns preventing this useful expansion in ag-grid functionality?
We have successfully implemented this functionality in ui-grid and it works quite well:

Unfortunately, ui-grid is badly performant due to the sheer # of watches it creates (it creates over 2500 in our UI on just a simple table) and we'd like to switch to ag-grid but without virtual paging support for any of the items above, we will have to remain using ui-grid.

having server side grouping and pivoting is something we indent working on in Q1 2017. thanks for raising, it's on our radar.

@nkoterba I ran into the same issue and worked around it the following way:
onGridReady: function(params) {
            this.api = params.api;
            this.columnApi = params.columnApi;
            var gridBody = document.getElementsByClassName('ag-body-viewport')[0];
            gridBody.addEventListener('scroll', function() {
                if (gridBody.scrollHeight - $(gridBody).height() - gridBody.scrollTop < 200 && moreData) {
                    //request data and setRows
                }
            });
        }.bind(this)

In my scroll callback, I check if I'm close to the bottom of the scroll area and if I have additional data to request. When I request the new data, I append it to the previous set of rowData array. Then when I set the concatenated data, it looks similar to virtual scrolling. The downside to this workaround is that your rowData keeps growing as you append more data to it and you need to manage the number of "pages" if it becomes to big.

@psumstr So you are using the In-Memory Row Model and just manually adding data to the rowData array when scroll gets close to bottom?
And this works with "expandable" flowers or nodes?

@nkoterba Yeah, it seems to be working fine. I opened an unrelated tree data bug today which happens independently of this approach.

@nkoterba BTW, the bug I just mentioned above seems to have been fixed in the freshly released 6.3.0

tracked by AG0150
https://www.ag-grid.com/ag-grid-pipeline/

the new Enterprise Row Model covers this - please take a look. it allows grouped data that is loaded in infinite scrolling fashion.

having server side grouping and pivoting is something we indent working on in Q1 2017. thanks for raising, it's on our radar.

Does the new Enterprise Row Model cover both server side grouping and pivoting?


batch geocode

Is it possible to run the batch function with this package?

No, I would accept a PR if someone wants to add it.

I'm just doing a simple Meteor.setInterval() on my server. I wait 2 seconds each run. Works fine.


Compiler Error Handling

@meshipeer @meirwah @orius123 @avimora @avigail-oron - please review and comment
I'm working now on improving the compiler error handling.
Our error handling is based on Runtime Exceptions thrown from the relevant places in the code, containing the relevant error message.
I basically do the following:

Simulate corrupted slang files, problematic executables, and see if we receive the error message.
Make the error messages more comprehensive
Add missing error messages
Add missing more advanced validations, such as checking that all results of an executables have matching navigation in the embedding task.
Consider improving the YAML parser error messages

Do you think anything is missing?
Currently we throw runtime exception for each compilation error. Do you think we should throw dedicated Compilation exceptions instead, so that the CLI for example show them in a different manner than the runtime exceptions, or is the message enough?

:+1:  , no need for our own runtime exception IMO...

The message is enough IMO. Note that some are IllegalArgumentExceptions thrown by validate.

process seems fine to me.
I think we should try to improve parser exception, for CLI anyways.
don't like checked exceptions, prefer a result object.

result object? please elborate on this....

@orius123 don't you think the error message is enough?

Another question - do you think we should add to the documentation examples of possible errors + error messages?

NO, overkill in my opinion...

agree with @meirwah  if the error will be good we will not need to document them..
an object that contains the artifacts and/or the status.
but as I said, RTE seems gr8 for me!

looks like we have a decision :)
Orit - please close it if you agree

Agree :)
I think will leave the issue open until I merge the branch of the compiler error handling

BTW, do you think we want to keep the 2 types of exceptions:
RuntimeException & IllegalArgumentException?
Or do we want to align all to RuntimeException?

Since illegal... extends RTE, I think we don't need to remove it. on the other hand, validate also throws nullPointerException when validating nulls as far as I remember, and that doesn't look good..

Or may be have dedicated unchecked exception (which extends RTE), this way additional info can be added to it easily.


Read in long_name from openghg_defs site_info - Issue598

This closes #598 by adding a read in of station_long_name from openghg_defs.

Codecov Report

Merging #605 (dca5fe4) into devel (fa942c2) will decrease coverage by 0.01%.
The diff coverage is 32.43%.

:exclamation: Current head dca5fe4 differs from pull request most recent head e871cd6. Consider uploading reports for the commit e871cd6 to get more accurate results

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff             @@
##            devel     #605      +/-   ##
==========================================
- Coverage   32.87%   32.86%   -0.01%
==========================================
  Files         172      172
  Lines       13106    13131      +25
==========================================
+ Hits         4308     4316       +8
- Misses       8798     8815      +17

Impacted Files
Coverage Δ

openghg/retrieve/icos/_retrieve.py
0.00% <0.00%> (ø)

openghg/standardise/surface/_gcwerks.py
0.00% <0.00%> (ø)

openghg/store/_obssurface.py
0.00% <0.00%> (ø)

tests/standardise/surface/test_gcwerks.py
100.00% <ø> (ø)

tests/util/test_site.py
93.33% <ø> (ø)

tests/conftest.py
80.85% <100.00%> (+0.85%)
:arrow_up:

tests/store/test_obssurface.py
97.39% <100.00%> (+0.28%)
:arrow_up:

tests/util/test_lifetime.py
100.00% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

Yeah I think this can be closed.


Added option to report false location/card/item and suggest replacement

Added support for multiple instances of the same merchant with different location/card/item. To keep it organized, I added a "Votes" counter to each ActiveMerchant so users are able to detect the correct entry. Votes for a merchant are only increased when an identical merchant is suggested via the form, a simple upvote/downvote button would invite too many trolls I think...
Grouped ActiveMerchants under ActiveMerchantGroups to support these multiple instances. On merchant expiry all suggestions are reset and only one instance of each merchant stays.

Looks like a cool way to handle bad info.
So from running this, currently the only way to add a vote is to "suggest replacement" and then submit the same information again?

Exactly.
I thought about a more sophisticated voting mechanism but since there are no user accounts, it's a bit hard to limit the votes per user, as they are only differentiated by the SignalR ConnectionId. I guess you could store a UserId in the BlazoredStorage/Cookies to help with that, but that requires some additional setup in the Client-Server communication.

Makes sense. Yeah I'm leaning towards adding at least a very simple IP-based check, maybe an account system later, though I don't really think I'd ever want to try and force an account just to submit data anyway.

I think I'm going to temporarily pull this into its own branch, I think it makes sense to tweak some things like moving some of the Expire Dates onto the "group" and then just have a possibly-empty list of instances.
Also may go in and fix few a few oddities like giving the group an instance of its own static data, which I probably should have done originally and just set so it doesn't get serialized.


All tests passing in IE8+ and evergreen browsers.

This pull request makes all tests pass in IE8+ and latest Chrome, Firefox, Safari and Opera. Closes #1378.

Hey there! Great job!
Are there any plans to make 2.1.5 release in the nearest future with this pull request included?
We are using this framework in our daily work and really like it! Thanks.


feat: initial app version

Tasks

[ ] search tab content/design before search
[ ] watch progress/bookmarks content when empty
[x] go back to downloads tab if all downloads in show have been deleted
[x] backend api package https://github.com/movie-web/movie-web/tree/dev/src/backend/accounts
[ ] backend sync
[ ] download tab content when no downloads
[ ] check for update when app launches
[x] Downloads design (list of shows -> seasons -> list of downloaded episodes)
[x] possibly stash some bottomcontrols in a submenu as there's so many now they might not fit
[x] movie-web tab design/content (backend, account)
[ ] search results only animate on first load, should prolly also animate when results change and disappear
[ ] play next ep button
[ ] add new theme https://github.com/movie-web/movie-web/pull/1143
[ ] local subtitles
[ ] watch progress indicator on item
[x] default quality setting (WiFi/mobile data)
[x] season and episode parameters for opening video via url
[x] setting to allow downloads on mobile data
[ ] adjust bottomcontrols to be compatible with local playback
[x] replace tab title with pretty mw components
[x] hls downloads
[x] cancel downloads
[x] download background tasks
[x] store watch progress
[x] store bookmarks
[x] add/remove bookmarks
[x] open url scheme in app https://docs.expo.dev/guides/linking/
[x] abort scraping process in scrapingscreen
[x] Quality selector (both HLS and mp4)
[x] Input design (its now black)
[x] Switch design
[x] autoplay setting & functionality
[x] download toast notifications (tamagui toast beta)
[x] link download functionality to items
[x] download button and functionality in player
[x] mp4 downloads
[x] download history
[x] implement gesture control toggle
[x] default gesture controls to disabled on android
[x] refactor main storage to mmkv
[x] play downloaded files
[x] update checker
[x] provider-utils package
[x] video playback
[x] add app icon
[x] base64 & crypto impl
[x] preliminary loading screen
[x] pinch-to-zoom video
[x] gesture controls
[x] customized player
[x] real loading screen
[x] redesign ui
[x] themes
[x] dynamic app icon
[x] settings storage
[x] episode selection
[x] season selection
[x] source selection
[x] audio track selection
[x] audio track switching
[x] caption selection
[x] caption rendering
[x] playback speed selection
[x] playback speed switching

Issues to fix

[ ] https://github.com/expo/expo/issues/27888
[ ] changing season is broken, plays same season, episode works
[ ] item titles on cards should wrap
[ ] item cards in search don't align centered
[x] header items a tad big too big, item cards as well, searchbar bottom inset hardcoded
[x] item cards are being very cuddly with each other
[x] after player opened via deep link, back button leads to 404 page
[ ] Duration status laggy after switching sources.

This is only laggy on android.

[ ] Sometimes the scraping screen scrolls down before it started scraping, resulting in an empty view.
[ ] https://github.com/tamagui/tamagui/issues/1828
[ ] https://github.com/pchalupa/expo-alternate-app-icons/issues/37
[ ] https://github.com/mrousavy/react-native-mmkv/issues/662
[x] searchbar disappears when typing
[x] season selector opens twice <- only happens on iOS
[x] no release year prints NaN in item
[x] https://github.com/kesha-antonov/react-native-background-downloader/issues/9
[x] searchbar highlight doesn't highlight the edges in time

still happens, text field is faster than the edges

[x] https://github.com/expo/expo/issues/27786
[x] brightness slider eats into the notch
[x] adding safeareaview to Sheet.Frame has left some weird grey overlay with wrong insets
[x] home tab title is smol
[x] Volume and brightness overlay get stuck or show an inconsistent number when swiping up and down fast.

It also freezes the entire player on android.

[x] Font back to OpenSans. It broke during tamagui migration. Probably have to set that in the tamagui config.
[x] Flags in subtitles
[x] player modals are being eaten by device notch
[x] Showbox not working (https://github.com/facebook/react-native/issues/38656)
[x] https://github.com/expo/expo/issues/20333
[x] initial audiotrack switching doesn't properly adjust positionmillis, prolly needs to be bounced up
[x] Remaining duration counts down too fast
[x] FileMoon infinitely loading. Controls overlay not working while its infinitely loading.
[x] Access to controls while loading
[x] The touch area for the progress bar slider sometimes triggers the gestures instead. You have to be pretty accurate which is bad UX.
[x] Scraping screen styling is broken on iOS

Additional info:
Debugging URL scheme: pnpm dlx uri-scheme open 'movieweb://videoPlayer?type=tv&id=219651' --ios

Is there any work continuing here? @castdrian

It has in a private repository yes

Can you grant viewing access? @castdrian

no

Can you give a progress update?


can't modify frozen String

I'm getting this error when I try and run this on ruby 1.9.3p286 (2012-10-12 revision 37165) [x86_64-darwin12.2.0].
==> scss-lint cdn/styles/
can't modify frozen String
/Users/dave/.rvm/gems/ruby-1.9.3-p286/gems/scss-lint-0.34.0/lib/scss_lint/engine.rb:26:in `force_encoding'
/Users/dave/.rvm/gems/ruby-1.9.3-p286/gems/scss-lint-0.34.0/lib/scss_lint/engine.rb:26:in `initialize'
/Users/dave/.rvm/gems/ruby-1.9.3-p286/gems/scss-lint-0.34.0/lib/scss_lint/runner.rb:33:in `new'
/Users/dave/.rvm/gems/ruby-1.9.3-p286/gems/scss-lint-0.34.0/lib/scss_lint/runner.rb:33:in `find_lints'
/Users/dave/.rvm/gems/ruby-1.9.3-p286/gems/scss-lint-0.34.0/lib/scss_lint/runner.rb:21:in `block in run'
/Users/dave/.rvm/gems/ruby-1.9.3-p286/gems/scss-lint-0.34.0/lib/scss_lint/runner.rb:20:in `each'
/Users/dave/.rvm/gems/ruby-1.9.3-p286/gems/scss-lint-0.34.0/lib/scss_lint/runner.rb:20:in `run'
/Users/dave/.rvm/gems/ruby-1.9.3-p286/gems/scss-lint-0.34.0/lib/scss_lint/cli.rb:51:in `scan_for_lints'
/Users/dave/.rvm/gems/ruby-1.9.3-p286/gems/scss-lint-0.34.0/lib/scss_lint/cli.rb:45:in `act_on_options'
/Users/dave/.rvm/gems/ruby-1.9.3-p286/gems/scss-lint-0.34.0/lib/scss_lint/cli.rb:24:in `run'
/Users/dave/.rvm/gems/ruby-1.9.3-p286/gems/scss-lint-0.34.0/bin/scss-lint:6:in `<top (required)>'
/Users/dave/.rvm/gems/ruby-1.9.3-p286/bin/scss-lint:23:in `load'
/Users/dave/.rvm/gems/ruby-1.9.3-p286/bin/scss-lint:23:in `<main>'
/Users/dave/.rvm/gems/ruby-1.9.3-p286/bin/ruby_executable_hooks:15:in `eval'
/Users/dave/.rvm/gems/ruby-1.9.3-p286/bin/ruby_executable_hooks:15:in `<main>'
Report this bug at https://github.com/causes/scss-lint/issues

Duplicate of #390, which was fixed by b0de02f.

I installed the latest version of this via gem install scss-lint today and that still has this issue. How do I get the version with the fix in it?

Which version are you running? The latest version 0.35.0 was just released today.

Ok just did an update and it's fixed now.
Thanks.


Adding templating to the customise_finding

Describe the bug
Adding templating to the customise_finding, at the moment when you use resource_babysitter many  fields are lost, and it is not possible to identify what application triggered it.
To Reproduce
Steps to reproduce the behavior:
`

triggers:

on_deployment_update: {}
actions:
resource_babysitter:
omitted_fields: []
fields_to_monitor: ["spec.replicas", "image"]
customise_finding:
title: "Deployment Changed: $name on namespace: $namespace"
description: "Replicas/Application changed"
severity: "INFO"
aggregation_key: "Deployment Changed"
sinks:
"xxxx"

`

Expected behavior
Allow us to identify what application triggers the alert with custom details, like $name, $namespace, and others.

Thanks for reporting it @adecchi-2inno
We'll fix it shortly


adding context menu doesn't work on refresh

I want to add some functionality which allows the user to right click on a slot in the gantt and see a menu. I have done this by adding a new directive which has the following code:
api.directives.on.new(scope, function (dName, dScope, dElement, dAttrs, dController) {
                if (dName === 'ganttRow') {
                    dElement.bind('contextmenu', function (event) {

                        scope.menu.show = true;
                        scope.menu.posLeft = event.clientX -10;
                        scope.menu.posTop = event.clientY - 170;
                        scope.row = dScope.row;
                        scope.date = api.core.getDateByPosition(event.offsetX, true);
                        scope.$apply();
                        return false;
                    });

                }

However if you refresh the page the event is not attached again. Can you see where I'm going wrong please?

We found this occured because we were using a custom template and our own custom plugins using the template hooks. Removing  the custom template has fixed this.


[Add]: Noticed styles.yml File needs for Enhancement Related Requests and Changes Separately in ISSUE TEMPLATES

Details
Detailed Description:
style.yml (Custom ISSUE_TEMPLATE):

The style.yml file, on the other hand, serves as a custom ISSUE_TEMPLATE for issues related to coding style, code formatting, and linting rules within your GitHub repository. This template helps contributors or users report code style-related concerns or seek guidance on adhering to the project's coding standards.
The contents of style.yml might include specific questions or prompts related to coding style, requesting users to provide examples of code snippets that need formatting adjustments or explanation. Additionally, you might include instructions on how to check code against the project's style guidelines and best practices.

Screenshots
No response
Type of Contribution

[ ] Update to an existing Animated Button
[ ] Adding a new Button
[ ] Resolving a bug
[X] Proposal to the Repository
[ ] Changes related to documentation or README.md
[ ] Other Changes

Checklist

[X] I have checked the existing issues
[X] I have read the Contributing Guidelines
[X] I am willing to work on this issue
[X] I am a GSSoC'23 contributor

Hi @Souravvmishra . Please review on this Issue.

@NarendraKoya999
What are you going to add in the styles.yml file?

@NarendraKoya999 What are you going to add in the styles.yml file?
This styles.yml template is tailored to gather information about enhancement suggestions for code style and styling. Users and contributors can provide detailed descriptions of the changes they propose, code examples, and the reasoning behind their suggestions. The template encourages a well-structured and comprehensive approach to enhancement requests, making it easier for your team to review and consider these improvements effectively.

🎉 The GSSOC'23 program has reached its conclusion, prompting us to officially close all pull requests (PRs) and issues. We extend a heartfelt thank you for your amazing contributions! 🙌 Keep the coding spirit alive with the same enthusiasm, and may luck 🍀 favor you in all your future coding adventures!


How To Contribute More

I would like to contribute more to the community.
Add me to the community.

@prasadjivane Get your invite to CNCF-slack channel here: https://communityinviter.com/apps/cloud-native/cncf
Once done, Find a channel in slack: glossary.
Congratulations, You've joined the community!

Hi @prasadjivane
Thank you for your interest ! Welcome :)
I am a maintainer of this Glossary repository.
You can find a guide document to initiate your contribution.
So, PTAL :)

https://glossary.cncf.io/contribute/
https://glossary.cncf.io/style-guide/
https://glossary.cncf.io/contributor-ladder/

and since this Issue is a simple and general question, let me close this Issue.
You can utilize #glossary Slack channel for some general questions next time.


Collapse sensor data into a HUD element

Taking cues from an early modification by @crushingt1d, putting the last glucose value into a HUD element (I think I prefer second-from-leading).
Compactly this can describe the last glucose value, the trend arrow, the calibration state and the time, enabling the further removal of the text-based rows at the bottom that cause so much anxiety.

This would be a great addition. I have found that adding this to the HUD is very helpful when using Loop.  I am assuming Loop status would continue to be leading.


Is .NET 1 Standard Support a joke?

Hi, Andrei.
I explored your PanCardView module. I detected that you link Xamarin Forms 5. But Xamarin Forms 5 is not compatible with .NET 1/ 1.2 / 1.3/ 1.4. It is for 2.0 only. So, .NET 1 Standard support is only joke :(
Heh, I want to use PanCardView for old sweet Win10Mobile (last Win 15063 SDK don't support .NET 2 Standard). Too bad that your multi-platform samples is not universal solution as I dream...

Yes, it was a joke.
If you wish, you can download this project, downgrade forms version to needed one, then either create a local package or add the project as dependency, use it and enjoy)

Yes, it was a joke. If you wish, you can download this project, downgrade forms version to needed one, then either create a local package or add the project as dependency, use it and enjoy)

Nice idea. Good plan!
Ok, I forked your solution for PanCardView adaptation to W10M UWP :)
Cheers up!
Have a nice day / Best wishes ,
mediaexplorer74 aka Andrey

@mediaexplorer74 nice :)


Update build configuration

The build configuration of this project is outdated and may no longer work.
This pull request will be merged automatically if there are no conflicts.

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

npm package (@release-3.2.x dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


docker.io/photoprism/photoprism:240531

详细 https://github.com/DaoCloud/public-image-mirror/issues/2328


error

hi there,
thx for the update :)
had to add yolact_edge. to from data.youtube_vis
in line 981 of eval.py
Regards

thx


Added node graph bookmarks.

Nodes may be bookmarked using the right click context menu in the node graph. They are then available in the right click context menu for plugs in the node graph, allowing connections to be made easily to distant nodes. I suspect we'll want to expand on this to give access to bookmarked nodes elsewhere in the UI at a later date, but for now it should be sufficient for #849, as discussed on #413.
Fixes #849.

Since bookmarks may not make sense in all apps, they must be enabled from a config file - so we'll need to do that for Caribou.


Ability to generate images via API

Another great option would generation via CLI.
I could imaging one common use-case, dynamically generating code snippets for documentation in CI.

Completed! 🎉
https://api.showcode.app/docs


championship sign up form

i've seen quite a few spreadsheets out there for signing up to championships. thought it might be good to have a form integrated into server manager to sign up
usual details i've seen:

name
team name
car choice
skin choice?
maybe an email so they can be contacted? idk

Steam Guid?
Add skin choice?  (for personal skin)

optionally require a CAPTCHA to be passed (if captcha options are set in config.yml)?


error: Unable to invoke action using CLI when reading from file input

sequence tutorial documented doesn't work with go-cli
same tutorial works with old python cli

Create an action sequence so that the result of one action is passed as an argument to the next action.
$ wsk action create myAction --sequence /whisk.system/util/split,/whisk.system/util/sort

This action sequence converts some lines of text to an array, and sorts the lines.

Before you invoke the action sequence, create a text file called 'haiku.txt' with a few lines of text:
Over-ripe sushi,
The Master
Is full of regret.

Using go cli
$ wsk action invoke --blocking --result myAction --param payload "$(cat haiku.txt)"
error: Unable to invoke action 'myAction': Unable to create HTTP request for POST 'actions/myAction?blocking=true': Error encoding request body: json: error calling MarshalJSON for type *json.RawMessage: invalid character '\n' in string literal

Expected output:
4. Invoke the action:
  $ wsk action invoke --blocking --result myAction --param payload "$(cat haiku.txt)"

  {
      "length": 3,
      "lines": [
          "Is full of regret.",
          "Over-ripe sushi,",
          "The Master"
      ]
  }

error: Unable to invoke action 'myAction': Unable to create HTTP request for POST 'actions/myAction?blocking=true': Error encoding request body: json: error calling MarshalJSON for type *json.RawMessage: invalid character '\n' in string literal

The cli should do a better job reporting errors. Three levels of "[e|E]rror" and multiple : is confusing and ugly; surely can do better on the message and its formatting.

Issue moved to apache/incubator-openwhisk-cli #150 via ZenHub