NeoTreeFloatToggle discards previous state, focuses current file instead

If I open the tree with :NeoTreeFloatToggle, it will show the current file (which I'm not sure if is intended or not). If I move somewhere else in the tree, hide the tree, then show it again, I am returned to where the file that was focused when first opening the tree rather than the file that I had previously navigated to before closing it.
For example:
https://user-images.githubusercontent.com/31262046/148704967-ad40a77b-dfcb-40af-92ae-f5094721fc35.mp4
where I first open the tree and it focuses the current buffer (whether or intended or not). I then change it to focus on another node, close the tree, then when I re-open it the focus is not on the same node as I closed it with

That is the intended behavior, but I can see how not everyone would want that. The question is, do i just keep adding more commands to cover every variation, or something else? To keep with the current conventions, I should add:
NeoTreeFloatFocus = the behavior you are looking for
NeoTreeFloatShow = keep the state and show it, but don't focus it
NeoTreeFloatReveal = the current behavior of NeoTreeFloat, but explicitly named
NeoTreeFloatFocusToggle
NeoTreeFloatShowToggle
NeoTreeFloatRevealToggle = the current behavior of NeoTreeFloatToggle, but explicitly named

Yea I can see how that start to get a little bit ridiculous. You could try to do what Fugitive and Telescope do and just use a single command that takes arguments that are like key or key=value so that you can extend it however you need to.
This is basically a "complication layer" on top of a command, but makes it a lot easier (at least before vim.keymap) to map.

Would this be a good time to expand and support the "any tree" model, such that the commands would be something like:
NeoTree filesystem reveal
NeoTree filesystem show

as well? The plugin could handle parsing the first argument to direct the rest to the proper tree, then the tree would have to handle what remains?

I think that's the way to go. I haven't heard of "any tree", is that a design pattern or a vim specific api?

No, just echoing what the README notes about:

browse the file system and other tree like structures in a sidebar or floating window

and the top level keys to setup, referencing that really you can render "any tree-like structure" with this plugin.

Oh right, that's obvious now! I guess I was hoping there some utility to make this task easier.

I'm happy to take a stab at it as well, just let me know. Implementing it would be easy enough, then "just" have to plug it in to the functions that already exist and take arguments.

I do think I want to deprecate all of the current commands, to be removed in 2.x, and switch to a new single command system of the form:
NeoTree
example: NeoTree focus filesystem float toggle
or is it easier to use this? example: NeoTree action=focus source=filesystem position=float toggle=true`
Where action is one of:

show = show the window, keeping previous state, without focusing
focus = show and focus, keeping previous state
reveal = focus and find current file in tree

and source is any available source:

filesystem
buffers
git_status

and position is a valid position:

left
right
float

and toggle is a boolean flag, which is true if present and false otherwise

I just saw your offer to take a stab at it, that would be great! The biggest complication would be that the float methods are currently built around always revealing, so they need to be refactored a little.

@levouh Just so I know how to categorize this on the new project board, are you working on this?
If you are, be warned we added stylua to the project which made minor changes to every file. It can be a merge nightmare you probably want to get ahead of before making too many changes.

Everything I've added so far is in new files, so as soon as you push I can go from there. Having stylua will be nice! Also something like luacheck would be cool.
FYI as well, I added testing using the module that plenary provides in my branch.

Adding tests would be great, thanks!
luacheck style warning are already running from something in my config, maybe the language server. Feel free to open a PR for  a config or an action if you want.

@cseickel wanted to double check with you, but right now there isn't a way to "get the previous state from a tree", right?
Specifically consider the case where I reveal a file and close the tree. The tree itself has a state, but so does the cursor. If I then action=focus the tree again, the current action only makes an attempt to open and then focus the tree window. The cursor is left alone at the top of the buffer, rather than placed in the same place as it was when the window was previously closed.
I have a relatively simple way to handle this that I use in my own current configuration (basically tracking Win{Leave,Enter} for all neo-tree buffers and keep track of the cursor state), but wanted to make sure there isn't something that already exists first. The aforementioned method could break in the case that the tree state changes without one of those events firing (not a common thing as far as I'm aware).
Wanted to get your feedback before going any further with this.

I always use Reveal so I never noticed that the cursor location is lost. That is not the intended behavior.
Something should be done to store that piece of state and restore when creating a new window. I think that event could be subscribed in the renderer using Nui methods to record the cursor position on WinLeave.
I would say this is a separate issue, I'd call it a bug on the Show/Focus behavior.


Chrome browser is slow on first load

Hi,
I have a load time of about ten seconds which only occurs on Chrome browser and on the first load.
Then it starts over every 5 minutes or so...
I specify that the certificates are valid, that no chrome extension is activated and that I am on Docker for Mac.
Do you want to request a feature or report a bug?
Bug
Output of traefik version: (What version of Traefik are you using?)
v2.3

What is your environment & configuration (arguments, toml, provider, platform, ...)?

traefik.yml

## Global Configuration
global:
  sendAnonymousUsage: false
  checkNewVersion: false

api:
  insecure: false
  dashboard: true

## Entrypoint Configuration
entryPoints:
  web:
    address: ":80"
    http:
      redirections:
        entryPoint:
          to: websecure
          scheme: https
          permanent: true

  websecure:
    address: ":443"
    http:
      tls:
        certResolver: default

## Provider Configuration
providers:
  docker:
    network: domain_traefik_default
    watch: true
    exposedByDefault: false
  file:
    filename: /etc/traefik/certs.yml
    watch: true

docker-compose.yml

version: '3'

services:
    reverse-proxy:
      image: traefik:v2.3
      restart: unless-stopped
      container_name: domain_reverse_proxy
      ports:
        - "80:80"
        - "443:443"
      volumes:
        - /var/run/docker.sock:/var/run/docker.sock
        - ./docker/certs/:/certs
        - ./docker/traefik.yml:/etc/traefik/traefik.yml:ro
        - ./docker/certs.yml:/etc/traefik/certs.yml:ro
      labels:
        traefik.enable: 1
        traefik.http.routers.api.entrypoints: websecure
        traefik.http.routers.api.rule: Host(`traefik.domain.local`) && (PathPrefix(`/api`) || PathPrefix(`/dashboard`))
        traefik.http.routers.api.tls: 1
        traefik.http.routers.api.service: api@internal
        traefik.http.routers.api.middlewares: auth
        traefik.http.middlewares.auth.digestauth.users: admin:traefik:645edc07321b34a1c5801f5cfca836ad

certs.yml

tls:
  certificates:
  - certFile: /certs/server.cer
    keyFile: /certs/server.key

Hi! I'm Træfiker :robot: the bot in charge of communication regulation.
Thanks for your interest in Traefik!
We dedicate the issue tracker to bug reports and feature requests only. My advanced AI has spotted that your issue might be a configuration problem or relates to something that doesn't look like a bug.
To confirm this, please join our Community Forum and reach out to us on the Traefik section.
In case I'm wrong (well, that would be embarrassing :sweat_smile:), my developers will re-open the issue and fix me!
In the meantime, you can double check Traefik's documentation.


Remove mbgl::Environment from logging

mbgl::Environment was dropped and since most of the errors are being
forwarded to the NodeMap render callback, we can handle them there and
pinpoint exactly what NodeMap object is failing.

Follow-up of https://github.com/mapbox/mapbox-gl-native/pull/1786

/cc @mikemorris


Feedback on Tutorial: SAP HANA XS Advanced, Connecting to the WebIDE to begin development

This is not a good tutorial.
It is unclear how the very first step follows on from the previous tutorial.

Exactly which part is unclear? The previous tutorial is how to get your system which also indicates that steps are necessary which can be found on the landing page of the system once it has been created. We'd like to update this to remove confusion so if you can help me better understand what was/is unclear then I'll get those changes into place.

Hello @ccmehil,
My name is Carlos Rojas, I am studying SAP HANA and I want to help improve this tutorial,
I will try to explain my experience with the tutorial:

SAP HANA XS Classic Group 1: Basic development, it has very little problems  but you can figure out and resolve.

But, SAP HANA XS Advanced Group 1: Basic development,  it was difficult execute the first step, the first instruction says:

Launch the SAP Web IDE for SAP HANA at the following URL in your web browser.

but to me, it not explains what i have to do , then I I had read all the first step, and based on:

...that you created in the previous tutorial.

I tried to use the url: codejamp999999trial.hanatrial.ondemand.com:53075  (999999 is not the real number) but not work, then I search in google: SAP Web IDE for SAP HANA and found the video: SAP HANA Academy - SAP Web IDE: Getting Started [1.15] at 4'20" it shows the link to access to SAP Web IDE for SAP HANA.

The second step was easy, but third step was impossible,  it says:

Choose Multi-Target Application Project...

but this option not exist, the screen only showed templates related with SAPUI5, SAP Fiori and an empty plugin. Then I found http://go.sap.com/developer/tutorials/sapui5-webide-open-webide.html and in this page explains step by step how launch the Web IDE. At this point I said: enough with XS, and start SAPUI5 tutorial, it has little troubles but similar to the first tutorial you can figure out and resolve.
In some moment I clicked in some blue box "feedback", and I wrote something about the "template options" in the third step, but at the end says: "Thanks for the survey" and I know sometimes surveys are slow, then I click in the link "feedback" and discover this GitHub forum. I hope it will be faster than survey.
If you need more details I can help you.
Best Regards,
Carlos Rojas.

SAP HANA XSA is not available on the SAP HANA Cloud Platform nor is the SAP WebIDE for SAP HANA - for XSA development you can only use the SAP HANA Developer Edition (via http://cal.sap.com where it is hosted on Amazon AWS or Microsoft Azure)


Ball Breaker

Ball Breaker

This PR fixes #

well I hope the game works

Hi @TemplateGamesInc, I'm sure it's a cool game, but I'm not going to add it to VS Code 😁

Ok I’m fine with that but I don’t know if it works...
Sent from my iPad

On Nov 18, 2020, at 9:10 PM, Rob Lourens<EMAIL_ADDRESS>wrote:

Hi @TemplateGamesInc, I'm sure it's a cool game, but I'm not going to add it to VS Code 😁
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Wow Templates, would've loved to play your... Ball Breaker (???) game.
There are a lot of resources online so take the time to level up your skills by learning how to code.
You'll be making great games in no time, and maybe you'll find your contribution in VS Code one day too.
https://www.codecademy.com/learn/introduction-to-javascript
https://www.learn-js.org/
https://learnjavascript.online/


Provide a "retina" media query mixin

It's hard to remember the syntax for different resolution media queries, so it would be great if a retina media query mixin was provided so all media queries in a Scally project are written with mixins.
The default should be for a 1.5dpr as that caters for most devices, but also allow it to be customised for 2dpr.
CSS Tricks has a list of the syntaxes: https://css-tricks.com/snippets/css/retina-display-media-query/ but we only need the unprefixed min-resolution as autoprefixer will take care of the -webkit-min-device-pixel-ratio

There's this one specifically for bg images: https://github.com/chris-pearce/scally/blob/master/core/mixins/_retina-bg-image.scss.

Hmmm didn't see that. I wonder if there other use cases for a separate retina mixin that allows any @content…?
Perhaps just update this to allow for different resolutions and remove the prefixes?
Also, perhaps have $width and $height to default to auto, that way you only need to calculate one dimension:
a {
  @include<EMAIL_ADDRESS>100px);
}

Which would result in:
a {
  background-size: 100px auto;
}

Hmmm didn't see that. I wonder if there other use cases for a separate retina mixin that allows any @content…?

I can't think of any of the top of my head.

Perhaps just update this to allow for different resolutions and remove the prefixes?

Will do.

Also, perhaps have $width and $height to default to auto, that way you only need to calculate one dimension:

Yes good shout.

In my brief search, I can't find any good info on what a good, default dpr is to match most devices. Suzi uses 1.3, but Scally uses 1.25.
It'd be great to allow users to input any ratio they want, though and not limit them to set ones (so that way it doesn't need to keep up with 3x and 4x devices should we ever need to cater for them specifically).
1dpr = 96dpi, so take whatever (unitless) dpr they enter and multiply it by 96 to get the desired dpi.

After doing a search for sass media query mixins, it seems like a lot frameworks/developers like to have a separate mixin that can be passed any @content. Bourbon is a high profile one (which also does the DPR stuff with a 1.3 default):  http://bourbon.io/docs/#hidpi-media-query
The more I think about it, the more I agree with my original request to provide a "just" retina mixin, to:

give users choice as to how they write their retina rules (lots of devs don't like mixins that do too much for them)
allow devs to write "normal" css to benefit from code hints and not use arguments
allow easier transition from other frameworks that provide this already
not confuse new devs (like myself) when they don't see one in the media queries partial & think they have to write their own

Is still keep the original for backwards compatibility though & users who prefer that way.


[ENG-6183] add secret:sync command

Checklist

[ ] I've added an entry to CHANGELOG.md if necessary. You can comment this pull request with /changelog-entry [breaking-change|new-feature|bug-fix|chore] [message] and CHANGELOG.md will be updated automatically.

Why
We want to add support for Doppler (secret storage/sync service).
This PR adds the eas secret:sync command that allows importing secrets from a dot env-like file to EAS secret.
It looks sth like this:
eas secret:sync --scope project --env-file ./eas/.env --force
This allows using Doppler:
doppler run --mount ./eas/.env -- eas secret:sync --scope project --env-file ./eas/.env --force
The dot env file should look sth like this:
ABC=123
DEF=456

How

The command is mostly a copy-paste of secret:create.
It checks whether any of the secrets defined in the file is already present on the server.

If there is, and --force is passed. Those secrets are deleted from the server.
If --force is not passed, the command exits.

If --env-file is not passed,  the command display a prompt.

Test Plan
I created an account on https://doppler.com/  and tested the command:

what do you think about renaming this command to eas secret:push? sync implies that it will be bidirectional

It sounds like a good idea.


Node is making 4+ api requests per second causing lots of DNS lookups

I'm using the latest version 5.0.11 and I'm seeing a lot of DNS lookups to eu-api-alexa.amazon.co.uk. It's roughly about 4 per second. I noticed this as I use pihole and it was making so many calls that pihole eventually rate limited the client. Nothing is being blocked by pihole. Functionally, this node is brilliant and is just what I need.
I've enabled trace and this is what's happening in the debug log (over and over again):
18 Jul 22:06:33 - [debug] [alexa-remote-account:d2ad57c429e59850] Alexa-Remote: No authentication check needed (time elapsed 231251)
18 Jul 22:06:33 - [debug] [alexa-remote-account:d2ad57c429e59850] Alexa-Remote: Sending Request with {"host":"eu-api-alexa.amazon.co.uk","path":"/api/devices-v2/device?cached=true&_=1658178393881","method":"GET","timeout":10000,"headers":{}}
18 Jul 22:06:33 - [debug] [alexa-remote-account:d2ad57c429e59850] Alexa-Remote: Response: {"devices":[ "removed for brevity" ]}

It's my first time using this node so I'm not sure this is normal?
I've got events disabled in the account configuration as I thought that might be the issue but it's not.
Happy to help debug if this is a bug.

That's definitely not normal. Just checked my PI and I don't have this behavior. Have you used this node before and it's happening since the last update?
Thanks!

I'm a new user to this node. I was using the mattl0 fork for a few days before switching to your fork. I think it started when the latest alexa-remote package was pulled in, but I can't be sure. I started using mattl0 around the 11th of July.
I reported this on the mattl0 fork https://github.com/MattL0/node-red-contrib-alexa-remote2-mattl0/issues/3


install dask lab ext from main

Fixes | Closes | Resolves #1012

Please remove anything marked as optional that you don't need to fill in.
Choose one of the keywords preceding to refer to the issue this PR solves, followed by the issue number (e.g Fixes # 666).
If there is no issue, remove the line. Remove this note after reading.

Changes introduced in this PR:

Types of changes
What types of changes does your PR introduce?
Put an x in the boxes that apply

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds a feature)
[ ] Breaking change (fix or feature that would cause existing features to not work as expected)
[ ] Documentation Update
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no API changes)
[ ] Build related changes
[ ] Other (please describe):

Testing
Requires testing

[x] Yes
[ ] No

In case you checked yes, did you write tests?

[ ] Yes
[ ] No

Documentation
Does your contribution include breaking changes or deprecations?
If so have you updated the documentation?

[ ] Yes, docstrings
[ ] Yes, main documentation
[ ] Yes, deprecation notices

Further comments (optional)
If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered and more.
This updated jupyterlab image has already been added to beta deployment if anyone wants to test it out. We needed this for the demon on Monday.
To enable the extension try:

Settings > Advanced settings Editor > Dask
There will be a box called "Determine whether to validate dashboards via browser check".
Just check that and this will update the extension.

@viniciusdc is there a way to automatically enable the extention?

Yes there is https://github.com/Quansight/qhub/issues/1012#issuecomment-1149928436

I can have this automatically set by tomorrow, I was hoping to get this by today but lost track of time. Let me know if this is acceptable

Sorry to be slow in publishing, this feature should now be available from pypi


No config file for urxvt

https://wiki.archlinux.org/index.php/rxvt-unicode#Configuration
https://github.com/VaughnValle/kofuku/blob/master/.Xresources

Not to speak for the author.  However, most of the time urxvt pulls it's config from the Xresources file.

ok thanks


ScyllaDB will fail due to unsupported TransactWriteItems operation

The readme document recommended using ScyllaDB as an alternative of AWS DynamoDB, so I tried but got the following error:

com.amazonaws.services.dynamodbv2.model.AmazonDynamoDBException: Unsupported operation TransactWriteItems (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: UnknownOperationException; Request ID: null; Proxy: null)

I found that ScyllaDB indeed didn't implement some of the DynamoDB API, including this TransactWriteItems
(see https://opensource.docs.scylladb.com/stable/alternator/compatibility.html#unimplemented-api-features)
So I have to use either AWS official services or localstack. ClearFlask is still under evaluation in my team so AWS might not be an affordable way.
I'm not sure if it's a bug and whether clearflask is still compatible with ScyllaDB, as the error message came from aws package, I guess it might because the package had been updated when rebuilding the docker image and it will use these new APIs.

Unfortunately I don't actively test/support ScyllaDB. (although PRs are welcome).
I will remove it from the README for now.
In the meantime you can use Localstack, just make sure you follow the version described in the Docker Compose file since recent versions no longer support persistance of data in the community version.


Some DRM providers require default KID in wrapped license requests

Suggested fix for #528

Thank you for the feedback. I will correct these things

No probs, fixed that last thing now

Looks like you'll need to update the tests to match.  You can run the tests for yourself with python build/test.py.

Chrome 53.0.2785 (Mac OS X 10.10.5): Executed 891 of 927 (skipped 36) SUCCESS (6 mins 11.643 secs / 7 mins 27.425 secs)

Sorry, thought I did a lint check before pushing. Will fix


Refactor sockets and remove FEC

FEC was removed and packet sharding moved to sockets implementation on rust.

Superseded by https://github.com/alvr-org/ALVR/pull/1384.


fix oracle linux label to show that it will use the latest version

What type of PR is this?

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

Fixes #
Special notes for your reviewer:

Steps to reproduce

Does this PR introduce a user-facing change?

Does this PR require documentation?

putting this on hold in case we can actually pin oracle linux successfully


Refactor src/events/scraper/load-cache/index.js

Change API to take the loader, and add tests.  Passing in the loader object rather than a boolean should clarify flow.  Can also standardize on throwing instead of returning false,

How will this make life better?

Clearer code path

How big is this change (small/med/large/really large)?

Small

How complicated is it?

Medium.  Code exists and works, but IMO is hard to follow.

What's the test plan?

Dependency inject for unit testing to simulate cache fall through.
e.g:

async function load(params, loader) { ... }

async function loadCache(params) {
  if (isLocal) {
    try {
      let result = await load(params, localLoader)
      return result
    }
    catch {
      ... cache miss
    }
  }

  // S3 load
  try {
    let result = await load(params, S3Loader)
    return result
  }
  catch {
    ... failure
  }
}

Opened PR https://github.com/covidatlas/li/pull/232 for this.  I started adding tests but due to the multiple execution paths and exit conditions it became messy -- I'd still like to get those tests in but this PR is a good start.


Evaluation failed: DOMException: for List in Dialog

Hello,
we have a very very simple use case. We want to identify a list that is displayed in a dialog. For this we have the following very simple code:
const oSelector = {
        forceSelect: true,
        selector: {
            controlType: "sap.m.List"
        }
    };

const oList = browser.asControl(oSelector);

When we execute this then we get following error:
Evaluation failed: DOMException: Failed to execute 'querySelector' on 'Document': '#success,[object Object],myObject--dlgSelect-list-trigger,getList,getContent,addContent,insertContent,removeContent,removeAllContent,indexOfContent,destroyContent,bindContent,unbindContent,getContentAnnouncement,getType,setType,getUnread,setUnread,getSelected,setSelected,getCounter,setCounter,getHighlight,setHighlight,getAriaLabelledBy,addAriaLabelledBy,removeAriaLabelledBy,removeAllAriaLabelledBy,attachTap,detachTap,fireTap,attachDetailTap,detachDetailTap,fireDetailTap,attachPress,detachPress,firePress,attachDetailPress,detachDetailPress,fireDetailPress,init,invalidate,getBindingContextPath,isSelectedBoundTwoWay,getListProperty,informList,informSelectedChange,getAccessibilityType,getGroupAnnouncement,getAccessibilityDescription,getAccessibilityInfo,getMode,updateAccessibilityState,getDeleteControl,getDetailControl,getNavigationControl,getSingleSelectControl,getMultiSelectControl,getModeControl,getTypeControl,destroyControls,isActionable,exit,isSelectable,isSelected,updateSelectedDOM,setParent,setBindingContext,isGroupHeader,isIncludedIntoSelection,hasActiveType,setActive,ontap,ontouchstart,ontouchmove,ontouchend,ontouchcancel,onsapspace,onsapenter,onsapdelete,onkeydown,getTabbables,onsaptabnext,onsaptabprevious,onfocusin,onsapup,oncontextmenu,onsapdown,getBlocked,setBlocked,getBusy,setBusy,getBusyIndicatorDelay,setBusyIndicatorDelay,getBusyIndicatorSize,setBusyIndicatorSize,getVisible,setVisible,getFieldGroupIds,setFieldGroupIds,attachValidateFieldGroup,detachValidateFieldGroup,fireValidateFieldGroup,clone,addStyleClass,removeStyleClass,toggleStyleClass,hasStyleClass,isActive,rerender,getDomRef,allowTextSelection,attachBrowserEvent,detachBrowserEvent,placeAt,onselectstart,getIdForLabel,destroy,isBusy,getControlsByFieldGroupId,checkFieldGroupIds,triggerValidateFieldGroup,getTooltip,setTooltip,destroyTooltip,getCustomData,addCustomData,insertCustomData,removeCustomData,removeAllCustomData,indexOfCustomData,destroyCustomData,getLayoutData,setLayoutData,destroyLayoutData,getDependents,addDependent,insertDependent,removeDependent,removeAllDependents,indexOfDependent,destroyDependents,getDragDropConfig,addDragDropConfig,insertDragDropConfig,removeDragDropConfig,removeAllDragDropConfig,indexOfDragDropConfig,destroyDragDropConfig,getInterface,toString,prop,getUIArea,fireEvent,addDelegate,removeDelegate,addEventDelegate,removeEventDelegate,getFocusDomRef,focus,getFocusInfo,applyFocusInfo,getTooltip_AsString,getTooltip_Text,data,findElements,bindElement,unbindElement,getElementBinding,getDomRefForSetting,register,deregister,attachValidationSuccess,detachValidationSuccess,fireValidationSuccess,attachValidationError,detachValidationError,fireValidationError,attachParseError,detachParseError,fireParseError,attachFormatError,detachFormatError,fireFormatError,attachModelContextChange,detachModelContextChange,fireModelContextChange,applySettings,getId,setProperty,getProperty,validateProperty,isPropertyInitial,resetProperty,getOriginInfo,setAssociation,getAssociation,addAssociation,removeAssociation,removeAllAssociation,validateAggregation,setAggregation,indexOfAggregation,insertAggregation,addAggregation,removeAggregation,removeAllAggregation,destroyAggregation,isInvalidateSuppressed,getParent,isBinding,extractBindingInfo,getBindingInfo,bindObject,bindContext,unbindContext,unbindObject,bindProperty,unbindProperty,updateProperty,updateModelProperty,bindAggregation,unbindAggregation,updateAggregation,refreshAggregation,propagateMessages,isTreeBinding,updateBindings,isBound,getObjectBinding,getEventingParent,getBinding,getBindingPath,setElementBindingContext,updateBindingContext,getBindingContext,setModel,addPropagationListener,removePropagationListener,getPropagationListeners,propagateProperties,getModel,hasModel,findAggregatedObjects,attachEvent,attachEventOnce,detachEvent,hasListeners,isA,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,valueOf,toLocaleString,__executeElement_1,success,[object Object],ylpplfilialauswlib--dlgSelect-list-trigger,getList,getContent,addContent,insertContent,removeContent,removeAllContent,indexOfContent,destroyContent,bindContent,unbindContent,getContentAnnouncement,getType,setType,getUnread,setUnread,getSelected,setSelected,getCounter,setCounter,getHighlight,setHighlight,getAriaLabelledBy,addAriaLabelledBy,removeAriaLabelledBy,removeAllAriaLabelledBy,attachTap,detachTap,fireTap,attachDetailTap,detachDetailTap,fireDetailTap,attachPress,detachPress,firePress,attachDetailPress,detachDetailPress,fireDetailPress,init,invalidate,getBindingContextPath,isSelectedBoundTwoWay,getListProperty,informList,informSelectedChange,getAccessibilityType,getGroupAnnouncement,getAccessibilityDescription,getAccessibilityInfo,getMode,updateAccessibilityState,getDeleteControl,getDetailControl,getNavigationControl,getSingleSelectControl,getMultiSelectControl,getModeControl,getTypeControl,destroyControls,isActionable,exit,isSelectable,isSelected,updateSelectedDOM,setParent,setBindingContext,isGroupHeader,isIncludedIntoSelection,hasActiveType,setActive,ontap,ontouchstart,ontouchmove,ontouchend,ontouchcancel,onsapspace,onsapenter,onsapdelete,onkeydown,getTabbables,onsaptabnext,onsaptabprevious,onfocusin,onsapup,oncontextmenu,onsapdown,getBlocked,setBlocked,getBusy,setBusy,getBusyIndicatorDelay,setBusyIndicatorDelay,getBusyIndicatorSize,setBusyIndicatorSize,getVisible,setVisible,getFieldGroupIds,setFieldGroupIds,attachValidateFieldGroup,detachValidateFieldGroup,fireValidateFieldGroup,clone,addStyleClass,removeStyleClass,toggleStyleClass,hasStyleClass,isActive,rerender,getDomRef,allowTextSelection,attachBrowserEvent,detachBrowserEvent,placeAt,onselectstart,getIdForLabel,destroy,isBusy,getControlsByFieldGroupId,checkFieldGroupIds,triggerValidateFieldGroup,getTooltip,setTooltip,destroyTooltip,getCustomData,addCustomData,insertCustomData,removeCustomData,removeAllCustomData,indexOfCustomData,destroyCustomData,getLayoutData,setLayoutData,destroyLayoutData,getDependents,addDependent,insertDependent,removeDependent,removeAllDependents,indexOfDependent,destroyDependents,getDragDropConfig,addDragDropConfig,insertDragDropConfig,removeDragDropConfig,removeAllDragDropConfig,indexOfDragDropConfig,destroyDragDropConfig,getInterface,toString,prop,getUIArea,fireEvent,addDelegate,removeDelegate,addEventDelegate,removeEventDelegate,getFocusDomRef,focus,getFocusInfo,applyFocusInfo,getTooltip_AsString,getTooltip_Text,data,findElements,bindElement,unbindElement,getElementBinding,getDomRefForSetting,register,deregister,attachValidationSuccess,detachValidationSuccess,fireValidationSuccess,attachValidationError,detachValidationError,fireValidationError,attachParseError,detachParseError,fireParseError,attachFormatError,detachFormatError,fireFormatError,attachModelContextChange,detachModelContextChange,fireModelContextChange,applySettings,getId,setProperty,getProperty,validateProperty,isPropertyInitial,resetProperty,getOriginInfo,setAssociation,getAssociation,addAssociation,removeAssociation,removeAllAssociation,validateAggregation,setAggregation,indexOfAggregation,insertAggregation,addAggregation,removeAggregation,removeAllAggregation,destroyAggregation,isInvalidateSuppressed,getParent,isBinding,extractBindingInfo,getBindingInfo,bindObject,bindContext,unbindContext,unbindObject,bindProperty,unbindProperty,updateProperty,updateModelProperty,bindAggregation,unbindAggregation,updateAggregation,refreshAggregation,propagateMessages,isTreeBinding,updateBindings,isBound,getObjectBinding,getEventingParent,getBinding,getBindingPath,setElementBindingContext,updateBindingContext,getBindingContext,setModel,addPropagationListener,removePropagationListener,getPropagationListeners,propagateProperties,getModel,hasModel,findAggregatedObjects,attachEvent,attachEventOnce,detachEvent,hasListeners,isA,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,valueOf,toLocaleString,success,[object Object],ylpplfilialauswlib--dlgSelect-list-trigger,getList,getContent,addContent,insertContent,removeContent,removeAllContent,indexOfContent,destroyContent,bindContent,unbindContent,getContentAnnouncement,getType,setType,getUnread,setUnread,getSelected,setSelected,getCounter,setCounter,getHighlight,setHighlight,getAriaLabelledBy,addAriaLabelledBy,removeAriaLabelledBy,removeAllAriaLabelledBy,attachTap,detachTap,fireTap,attachDetailTap,detachDetailTap,fireDetailTap,attachPress,detachPress,firePress,attachDetailPress,detachDetailPress,fireDetailPress,init,invalidate,getBindingContextPath,isSelectedBoundTwoWay,getListProperty,informList,informSelectedChange,getAccessibilityType,getGroupAnnouncement,getAccessibilityDescription,getAccessibilityInfo,getMode,updateAccessibilityState,getDeleteControl,getDetailControl,getNavigationControl,getSingleSelectControl,getMultiSelectControl,getModeControl,getTypeControl,destroyControls,isActionable,exit,isSelectable,isSelected,updateSelectedDOM,setParent,setBindingContext,isGroupHeader,isIncludedIntoSelection,hasActiveType,setActive,ontap,ontouchstart,ontouchmove,ontouchend,ontouchcancel,onsapspace,onsapenter,onsapdelete,onkeydown,getTabbables,onsaptabnext,onsaptabprevious,onfocusin,onsapup,oncontextmenu,onsapdown,getBlocked,setBlocked,getBusy,setBusy,getBusyIndicatorDelay,setBusyIndicatorDelay,getBusyIndicatorSize,setBusyIndicatorSize,getVisible,setVisible,getFieldGroupIds,setFieldGroupIds,attachValidateFieldGroup,detachValidateFieldGroup,fireValidateFieldGroup,clone,addStyleClass,removeStyleClass,toggleStyleClass,hasStyleClass,isActive,rerender,getDomRef,allowTextSelection,attachBrowserEvent,detachBrowserEvent,placeAt,onselectstart,getIdForLabel,destroy,isBusy,getControlsByFieldGroupId,checkFieldGroupIds,triggerValidateFieldGroup,getTooltip,setTooltip,destroyTooltip,getCustomData,addCustomData,insertCustomData,removeCustomData,removeAllCustomData,indexOfCustomData,destroyCustomData,getLayoutData,setLayoutData,destroyLayoutData,getDependents,addDependent,insertDependent,removeDependent,removeAllDependents,indexOfDependent,destroyDependents,getDragDropConfig,addDragDropConfig,insertDragDropConfig,removeDragDropConfig,removeAllDragDropConfig,indexOfDragDropConfig,destroyDragDropConfig,getInterface,toString,prop,getUIArea,fireEvent,addDelegate,removeDelegate,addEventDelegate,removeEventDelegate,getFocusDomRef,focus,getFocusInfo,applyFocusInfo,getTooltip_AsString,getTooltip_Text,data,findElements,bindElement,unbindElement,getElementBinding,getDomRefForSetting,register,deregister,attachValidationSuccess,detachValidationSuccess,fireValidationSuccess,attachValidationError,detachValidationError,fireValidationError,attachParseError,detachParseError,fireParseError,attachFormatError,detachFormatError,fireFormatError,attachModelContextChange,detachModelContextChange,fireModelContextChange,applySettings,getId,setProperty,getProperty,validateProperty,isPropertyInitial,resetProperty,getOriginInfo,setAssociation,getAssociation,addAssociation,removeAssociation,removeAllAssociation,validateAggregation,setAggregation,indexOfAggregation,insertAggregation,addAggregation,removeAggregation,removeAllAggregation,destroyAggregation,isInvalidateSuppressed,getParent,isBinding,extractBindingInfo,getBindingInfo,bindObject,bindContext,unbindContext,unbindObject,bindProperty,unbindProperty,updateProperty,updateModelProperty,bindAggregation,unbindAggregation,updateAggregation,refreshAggregation,propagateMessages,isTreeBinding,updateBindings,isBound,getObjectBinding,getEventingParent,getBinding,getBindingPath,setElementBindingContext,updateBindingContext,getBindingContext,setModel,addPropagationListener,removePropagationListener,getPropagationListeners,propagateProperties,getModel,hasModel,findAggregatedObjects,attachEvent,attachEventOnce,detachEvent,hasListeners,isA,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,valueOf,toLocaleString' is not a valid selector.

[Chrome 89.0.4389.114 darwin #0-0]     at ExecutionContext._evaluateInternal (/node_modules/puppeteer-core/lib/cjs/puppeteer/common/ExecutionContext.js:218:19)
[Chrome 89.0.4389.114 darwin #0-0]     at processTicksAndRejections (node:internal/process/task_queues:94:5)
[Chrome 89.0.4389.114 darwin #0-0]     at async ElementHandle.evaluateHandle (yrtbfinv/node_modules/puppeteer-core/lib/cjs/puppeteer/common/JSHandle.js:120:16)
[Chrome 89.0.4389.114 darwin #0-0]     at async Object.internalHandler.queryOne (/node_modules/puppeteer-core/lib/cjs/puppeteer/common/QueryHandler.js:24:30)
[Chrome 89.0.4389.114 darwin #0-0]     at async DOMWorld.$ (/node_modules/puppeteer-core/lib/cjs/puppeteer/common/DOMWorld.js:95:23)
[Chrome 89.0.4389.114 darwin #0-0]     at async DevToolsDriver.findElement (/node_modules/devtools/build/utils.js:88:15)
[Chrome 89.0.4389.114 darwin #0-0]     at async Browser.wrappedCommand (node_modules/devtools/build/devtoolsdriver.js:75:26)
[Chrome 89.0.4389.114 darwin #0-0]     at global.$ (/node_modules/@wdio/runner/build/index.js:181:42)
[Chrome 89.0.4389.114 darwin #0-0]     at WDI5._getControl (/node_modules/wdio-ui5-service/src/lib/WDI5.js:574:45)
[Chrome 89.0.4389.114 darwin #0-0]     at new WDI5 (/node_modules/wdio-ui5-service/src/lib/WDI5.js:36:36)
[Chrome 89.0.4389.114 darwin #0-0]     at Browser.<anonymous> (/node_modules/wdio-ui5-service/src/lib/wdioUi5-index.js:467:33)
[Chrome 89.0.4389.114 darwin #0-0]     at Browser.next [as asControl] (/node_modules/@wdio/utils/build/monad.js:149:33)

Looks like a bug in WDI5. The library was presented at the UI5 Con. Is this production ready or rather beta stage?
Regards,
Nils

Hi Nils, in case you have a growing list please check issue 61

Hi @dominikfeininger ,
thanks for the fast answer. Where should I add this interaction root? In the selector this seems not to be working.

masterList: {
forceSelect: true,
selector: {
viewName: "your.view",
id: "masterList",
interaction: "root"
}
}

Unfortunately same result

the selector above definitely works for the default ui5 sap.m.List w/ growing enabled.
In order to search in open dialogs you might need to
searchOpenDialogs: true in the selector. i don't recall explicitly testing wdi5 for that locator strategy. so:

please test that :)
@dominikfeininger let's include a specific test for that in wdi5 itself
btw: we're using the exact same selectors as OPA5 and UIveri5 - if it works there/here it works here/there.

Good morning,
This is exactly our problem. We have a UI5 app with OPA5 tests and we want to migrate it to WDI5. In OPA5 everything is working. WDI5 crashes with the above error.
I debugged this. The mentioned error comes here: https://github.com/js-soft/wdi5/blob/1651f78d76b7b7e5b8c0fe55295006b151079cf8/wdio-ui5-service/src/lib/WDI5.js#L574
But the result from the done success handler here https://github.com/js-soft/wdi5/blob/1651f78d76b7b7e5b8c0fe55295006b151079cf8/wdio-ui5-service/src/lib/WDI5.js#L563 looks good:
["success",{},"ylpmylib--dlgSelect-list",["getBackgroundDesign","setBackgroundDesign","getInset","setInset",
"getHeaderText","setHeaderText","getHeaderDesign","setHeaderDesign","getFooterText","setFooterText","getMode","setMode",
"getWidth","setWidth","getIncludeItemInSelection","setIncludeItemInSelection","getShowUnread","setShowUnread","getNoDataText",
"setNoDataText","getShowNoData","setShowNoData","getEnableBusyIndicator","setEnableBusyIndicator","getModeAnimationOn",
"setModeAnimationOn","getShowSeparators","setShowSeparators","getSwipeDirection","setSwipeDirection","getGrowing","setGrowing",
"getGrowingThreshold","setGrowingThreshold","getGrowingTriggerText","setGrowingTriggerText","getGrowingScrollToLoad",
.....]]"

This OPA5 code works:
this.waitFor({
                id: "ylpmylib--dlgSelect-dialog",
                controlType: "sap.m.Dialog",
                actions: [oDialog => {
                   //List Found
                }],
                errorMessage: "List not found"
            });

ok, so there are different issues here:
judging by your code above, you're querying for a sap.m.Dialog, not a sap.m.List
this.waitFor({
                id: "ylpmylib--dlgSelect-dialog",
                controlType: "sap.m.Dialog",
                actions: [oDialog => {
                   //List Found
                }],
                errorMessage: "List not found"
            });

in the initial issue report, you were talking about a sap.m.List:
const oSelector = {
        forceSelect: true,
        selector: {
            controlType: "sap.m.List"
        }
    };

const oList = browser.asControl(oSelector);

so please provide the entire code/use case here - my guess is that it's a combination of things.

I have found the issue but currently thinking how to fix.
The array returned at this line is incorrect
https://github.com/js-soft/wdi5/blob/1651f78d76b7b7e5b8c0fe55295006b151079cf8/wdio-ui5-service/src/lib/WDI5.js#L574

An possible fix would be:
        while (Array.isArray(result[0])) {
            result = result[0];
        }

        // save the webdriver representation by control id
        if (result[2]) {
            // only if the result is valid
            this._webdriverRepresentation = $(`#${result[2]}`);
        }

@vobu  What do you think? Should I create an PR?

Hi @nilskasseckert,
haven't seen this response structure yet. Thanks for investigating.
Currently all self test of WDI5 are green. Can you please provide your testcase.
We will implement a fix shortly.

Hi @dominikfeininger,
we want to test here a simple Fiori App. When you open the app an simple dialog from an external library is loaded and displayed.
I played a little bit around and it seems that a lot of selectors have problems with 1.60. Did you start your test with Fiori Version 1.60.31?

An possible fix would be:
        while (Array.isArray(result[0])) {
            result = result[0];
        }

        // save the webdriver representation by control id
        if (result[2]) {
            // only if the result is valid
            this._webdriverRepresentation = $(`#${result[2]}`);
        }

@vobu What do you think? Should I create an PR? Seems a problem with Fiori 1.60

well, most certainly! PRs mega-welcome!
might take a look at https://github.com/js-soft/wdi5/blob/1651f78d76b7b7e5b8c0fe55295006b151079cf8/wdio-ui5-service/src/lib/wdioUi5-index.js#L84 where some version checking is done

Good morning,
sorry for the late response. I am on it right now but there is a lot to do. The multiversion tests were run only for the basic.tests.
All other tests were not run multi version. With version 1.60 everything crashes except the basic tests.
Of course, if you don't run the tests, then it looks like everything is working.
I will try to fix as much as possible, but can't promise it.
Regards,
Nils

right on! sorry to hear that older UI5 version cause so many troubles w/ the UI5 Testing API and thus wdi5 :(
Let us know if you need a helping hand once you got the first batch coded 👍

Hi @vobu,
Thank you for the offer. I have started. Here is the link to it: https://github.com/nilskasseckert/wdi5
Now if you run "npm run test:multiversion", it will only run the navigation hash test. I have fixed some bugs there but the ones that are still there now I have no idea right now.
Can you please have a look?
Thanks!
Regards,
Nils

Good morning,
I found the error. In 1.60 it is mandatory that you access the lists always with "interaction: true". Otherwise it is not working.

🙌

Hi @vobu,
Thank you for the offer. I have started. Here is the link to it: https://github.com/nilskasseckert/wdi5
Now if you run "npm run test:multiversion", it will only run the navigation hash test. I have fixed some bugs there but the ones that are still there now I have no idea right now.
Can you please have a look?

yes, we'll try and have a look.
could you please do a PR with your current implementation effort?
then we'll work from there on.

Hi @vobu ,
PR is opened: https://github.com/js-soft/wdi5/pull/77
Lets discuss there. Currently some other tests failing and the error is strange.
I think we can close this issue or and work in the PR?
Regards,
Nils

yep, closing this. thanks for your efforts so far!!!


Painting fence || DP ||documentation

Have you read the Contributing Guidelines on Pull Requests?
yes
Description
fixes #154
Checklist

[x] I've read the contribution guidelines.
[x] I've checked the issue list before deciding what to submit.
[x] I've edited the README.md and link to my code.

Related Issues or Pull Requests
issue #154

@HarshCasper  Can you please review and merge my pr, I have made the changes


4690 fix upload file

This PR solves a couple of issues:

A bug that prevented uploading a dataset after going back to the file dataset selector.
A bug that prevented uploading the same dataset twice.

The problem with #1 was that the _checkState method left the model in an invalid state (type == 'url' and value == '', which is an invalid URL).
Original issue: #4690

Frontend tests were OK :+1: (details)

Frontend tests were OK :+1: (details)

@viddo: can you review this PR, please?

:+1:


languageLang is not in the Hugo documentation, defaultContentLanguage is

What this PR does / why we need it:
languageLang in exampleSite/config[-dev].toml seems an obsolete option.
Special notes for your reviewer:
I've searched in the Hugo Docs and in the github's repos but I dont' find languageLang anywhere.
defaultContentLanguage is documented and is propably the correct option.
Release note:
Change languageLang to defaultContentLanguage in config.toml

Thanks a lot. I can't find languageLang as well. I'm not sure if it's PascalCase or camelCase since the documentation uses both versions. Let me check it out and get back to you.

OK.
What I have found is that in the Hugo docs "All Configuration Settings" are in camelCase (I just copy&pasted the setting), also in this PR they favor camelCase and link to a conversation about the topic.


[GAPRINDASHVILI]Fixed retire_now functionality for Service requested via Centralized Administration

Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1643261
This is gaprindashvili specific fix. Direct invocation Service.retire become possible after backporting https://github.com/ManageIQ/manageiq/pull/18137 which enabled InterRegionApiMethodRelay for Service
On master and hummer service retirement functionality was refactored and this not good looking hardcoding not needed
BEFORE:
"OK" Confirmation message in UI, but service retirement was not initiated with error :
[----] E, [2018-11-13T13:45:30.475414 #16117:3b310c] ERROR -- : [NoMethodError]: undefined method `retire_now' for #<ManageIQ::API::Client::Resource::Service:0x000000000ce35470>  Method:[block in method_missing]
[----] E, [2018-11-13T13:45:30.475605 #16117:3b310c] ERROR -- : /opt/rh/cfme-gemset/gems/manageiq-api-client-0.3.0/lib/manageiq/api/client/resource.rb:48:in `method_missing'
/var/www/miq/vmdb/app/models/mixins/process_tasks_mixin.rb:119:in `block in invoke_api_tasks'
/var/www/miq/vmdb/app/models/mixins/process_tasks_mixin.rb:116:in `each'
/var/www/miq/vmdb/app/models/mixins/process_tasks_mixin.rb:116:in `invoke_api_tasks'
/var/www/miq/vmdb/app/models/mixins/process_tasks_mixin.rb:65:in `block in invoke_tasks_remote'
/var/www/miq/vmdb/app/models/mixins/process_tasks_mixin.rb:60:in `each'
/var/www/miq/vmdb/app/models/mixins/process_tasks_mixin.rb:60:in `invoke_tasks_remote'

AFTER:
Service on remote region retired successfully
Depends on:  https://github.com/ManageIQ/manageiq/pull/18210
@miq-bot add-label  bug, gaprindashvili/yes, services

@miq-bot remove-label  hammer/yes

@miq-bot add-label blocker

\cc @gtanzillo @tinaafitz

Oops... this depends on https://github.com/ManageIQ/manageiq/pull/18210 that's not merged yet...

it is OK, #1812 removing error in the log but functionality in this PR is not affected - it will work.
In any case, I will keep BZ linked to this PR in DEV status until  #18210 merged to gaprindashvili

@simaishi #18210 merged into master and OK to be backported to both hammer and gaprindashvili


Error: Layout must be an array!

I'm getting the error Error: Layout must be an array! when I try to incorporate the library into my application. I added the code here:
`<script>
  import SystemInformation from './LandingPage/SystemInformation'

  import VueGridLayout from 'vue-grid-layout';

  var GridLayout = VueGridLayout.GridLayout;
  var GridItem = VueGridLayout.GridItem;

  var testLayout = [
    {"x":0,"y":0,"w":2,"h":2,"i":"0"},
    {"x":2,"y":0,"w":2,"h":4,"i":"1"},
    {"x":4,"y":0,"w":2,"h":5,"i":"2"},
    {"x":6,"y":0,"w":2,"h":3,"i":"3"},
    {"x":8,"y":0,"w":2,"h":3,"i":"4"},
    {"x":10,"y":0,"w":2,"h":3,"i":"5"},
    {"x":0,"y":5,"w":2,"h":5,"i":"6"},
    {"x":2,"y":5,"w":2,"h":5,"i":"7"},
    {"x":4,"y":5,"w":2,"h":5,"i":"8"},
    {"x":6,"y":4,"w":2,"h":4,"i":"9"},
    {"x":8,"y":4,"w":2,"h":4,"i":"10"},
    {"x":10,"y":4,"w":2,"h":4,"i":"11"},
    {"x":0,"y":10,"w":2,"h":5,"i":"12"},
    {"x":2,"y":10,"w":2,"h":5,"i":"13"},
    {"x":4,"y":8,"w":2,"h":4,"i":"14"},
    {"x":6,"y":8,"w":2,"h":4,"i":"15"},
    {"x":8,"y":10,"w":2,"h":5,"i":"16"},
    {"x":10,"y":4,"w":2,"h":2,"i":"17"},
    {"x":0,"y":9,"w":2,"h":3,"i":"18"},
    {"x":2,"y":6,"w":2,"h":2,"i":"19"}
];

  export default {
  name: 'landing-page',
  data: {
    layout: testLayout
  },
  components: { SystemInformation, GridItem, GridLayout  },

methods: {
  open (link) {
    this.$electron.shell.openExternal(link)
  }
},
}
</script>`

Why is it giving out :/?

Where is the template code?

Hey! The area I'm using it in my template is:
<div class="right-side">
    <grid-layout
        :layout="layout"
        :col-num="12"
        :row-height="30"
        :is-draggable="true"
        :is-resizable="true"
        :vertical-compact="true"
        :margin="[10, 10]"
        :use-css-transforms="true"
>

    <grid-item v-for="item in layout"
               :x="item.x"
               :y="item.y"
               :w="item.w"
               :h="item.h"
               :i="item.i">
        {{item.i}}
    </grid-item>
</grid-layout>

Thanks for your fast response! Library looks amazing!

Hey gmsa, I found out what the issue was. My data function was returning wrong. I needed to do this...
data () {
    return {
        layout: testLayout
    }
}

Thanks very much though for your fast response!

It looks like this is also wrong in the documentation? Look at the usage section: https://github.com/jbaysolutions/vue-grid-layout#usage

@TomFranssen  When you create a new regular Vue instance using new Vue(...) then the data property needs to be an object. Otherwise, when the Vue instance is a Vue Component, then data should be a function.


Raycasting

Add raycast with the camera.

Raycasting added
TODO: Make a ray vs AABB take into account the scale of the object


[Question] Disable Ripple/Bubble Feedback on iOS

First off, thank you for sharing your work. This is by way of a question and not an issue. I was wondering if the ripple/bubble feedback on IOS was, somewhat, configurable? I would like to know how I can totally turn it off on my project please.
Thanks.

Hey @tolu360 thanks for reaching out. I'm not sure though if I understand you issue correctly. Are you talking about Button components? Ripple effect should not be displayed on iOS but only on Android as that is the native way in which clickable elements would respond to actions.

Hi @kmagiera, I'm glad you replied, thanks. I was playing around with the sample app and I'm referring to this feedback for touches anywhere on the screen. Please see screenshots below - that bubble of some sort:

@tolu360 Example/ios/MBFingerTipWindow.m is where this is implemented.

Thanks @zachgibson, you are right.

Thanks @zachgibson for answering!
I'm closing this issue as it seems to be resolved for you @tolu360 In case you want to discuss further please go ahead and re-open it


this is not an issue this is suggesstion

hello
sorry but i dont know how to add my suggesstion
is it possible to add 2 new commands?
first
!idleall - this command will force each bot to idle all games that are on the account. this is good to gather playtime
second
!farmandidle - this command will force all bots to farm all possible cards first and to idle all games that are on the acc after
thank u for the nice program its very useful.

!idleall - this command will force each bot to idle all games that are on the account. this is good to gather playtime

There is already !play for that, and GamesPlayedWhileIdle, both having limit of ~32 games played concurrently. Not only already done, but also not possible to implement.

!farmandidle - this command will force all bots to farm all possible cards first and to idle all games that are on the acc after

There is already GamesPlayedWhileIdle for that.


HDDS-7777. Implement container replication in push model

What changes were proposed in this pull request?
Container replication works in a pull model: SCM asks the target datanode to download the container, listing available source datanodes.
The goal of this change is to add an alternative implementation, where the source datanode pushes the container to some target datanode.
The new push model is disabled by default, can be enabled by setting hdds.scm.replication.push=true.
~This is a draft, because I still need to add unit tests.~ (created HDDS-7806 for adding the unit tests)
https://issues.apache.org/jira/browse/HDDS-7777
How was this patch tested?
The patch enabled push replication in ozonesecure environment, which includes a simple Ratis re-replication test.
https://github.com/adoroszlai/hadoop-ozone/actions/runs/3970334317
Also tested with push replication enabled by default on a "test" branch:
https://github.com/adoroszlai/hadoop-ozone/actions/runs/3970335804

@ChenSammi @duongkame Can you please help review this PR?

Thanks @sodonnel for the review.


Add all common-io peripherals to CMake build system

Add all common-io peripherals to CMake build system
Description
Since the CMake now only tries to link supported peripheral symbols, all the tests and header files can be added to the build.
Checklist:

[ ] I have tested my changes. No regression in existing tests.
[ ] My code is Linted.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@osloapps-max tagging you in-case you want to weigh in on this PR before I merge it. Likely will merge it early Monday.


Newsletter-81:Translate into Japanese

@Ichiro0219 can you rebase on master, which has the recently merged https://github.com/bitcoinops/bitcoinops.github.io/pull/349
Also, if you review https://github.com/bitcoinops/bitcoinops.github.io/pull/349 you will see how the anchor links will work moving forward. Especially the part around putting in the comment tag if there are duplicate anchors which you might run into.

@bitschmidty
OK I 'll check  #349.
Rebase done, could you check it?

@Ichiro0219 looks like your force push caused an error with github closing this PR. Can you open a new one? Sorry for this hassle.


Add: TNH Canal 8

Channel Name
TNH Canal 8
Alternative Names (optional)
Canal Ocho
Network (optional)
No response
Owners (optional)
Government of Honduras
Country
HN
Subdivision (optional)
No response
City (optional)
Tegucigalpa
Broadcast Area
c/HN
Languages
spa
Categories (optional)
entertainment
NSFW
FALSE
Launched (optional)
2008-08-20
Closed (optional)
No response
Replaced By (optional)
No response
Website (optional)
https://tnh.gob.hn/en-vivo/
Logo
https://www.lyngsat.com/logo/tv/tt/tnh-canal-8-hn.png
Notes
No response

Already on database:
https://iptv-org.github.io/channels/hn/Canal8


Brazil Admin/Mexico Admin should see edit tab on campaign view page

As a logged in user with the Brazil Admin or Mexico Admin role when I'm on a campaign page that I created I should:

see the action page, not the pitch page
see the edit tab when viewing the action page (same as an editor role would see it)

@deadlybutter mind knocking this one out?
the action page access is because the user roles need to be added to the dosomething_user_is_staff() check
though, can you check that function and post here what else that is called by/what that gives the editor access to?

sure thing

dosomething_user_is_staff has an array of user roles which it uses for verification

administrator
editor
communications team
member support

that function is called in a few places

Gives them access to a few extra user fields (filed_partner, field_school_id, field_user_registration_source, picture, field_under_thirteen, field_job_title)
Allows them to view all term pages https://github.com/DoSomething/phoenix/blob/98ee1bc76940a4a70db1ddd501bbe8ecb4a3ce3f/lib/modules/dosomething/dosomething_taxonomy/dosomething_taxonomy.module#L32
Un-signup https://github.com/DoSomething/phoenix/blob/ffb2ee968fc45dc5854ccb03c3dbf993eb38fe05/lib/modules/dosomething/dosomething_signup/dosomething_signup.module#L750
Pitch page access
https://github.com/DoSomething/phoenix/blob/025f19fc9c2289b31c7b9f405cf52712f0389d58/lib/modules/dosomething/dosomething_campaign/dosomething_campaign.module#L293
Bypass pitch page to view full action page
https://github.com/DoSomething/phoenix/blob/025f19fc9c2289b31c7b9f405cf52712f0389d58/lib/modules/dosomething/dosomething_campaign/dosomething_campaign.module#L785
access to confirmation page regardless of reportback status.
https://github.com/DoSomething/phoenix/blob/025f19fc9c2289b31c7b9f405cf52712f0389d58/lib/modules/dosomething/dosomething_campaign/dosomething_campaign.module#L367
display tabs
https://github.com/DoSomething/phoenix/blob/83b61d349fc441a5e9ff79eb7de11f5dcb57256f/lib/themes/dosomething/paraneue_dosomething/includes/preprocess.inc#L83

@deadlybutter what is tabs?

@deadlybutter perhaps we should just add dosomething_global_is_regional_admin as a check to pitch page, because it looks like we won't want regional admins to have access to all those things.

@angaither I was assuming 'tabs' are the tabs above a node "edit view etc". its in the preprocess file (not module specific) so it makes sense I guess?
and yeah I was thinking thats probably the best route to go (re: pitch page)

:+1: let's go the regional_admin test then


Relax fixed sequence of CityModel member properties

The current draft GML schema for the core module defines a fixed <xs:sequence> for all member properties of a <CityModel> such as <cityObjectMember>, <apperanceMember> or <featureMember>. Although this is technically OK, it is different to CityGML 2.0 where all the member properties were defined as substitutes of gml:featureMember and thus could occur in an arbitrary order within a dataset.
Especially when writing software to convert exisiting CityGML 2.0 datasets to the new version 3.0, the fixed sequence is annoying because you cannot simply iterate over all members of the <CityModel> and write them to the target file. You would first have to collect and group all members by their type (i.e. cityObjectMember,  apperanceMember, featureMember) to be able to write them in the proper sequence. If you work on large input files, you might not be able to process the data in main memory, and thus things quickly become very tricky.
To make the life of implementers more easy, I suggest to replace the <xs:sequence> with a <xs:choice> in the GML schema. This would resolve the fixed ordering of member properties.

fixed in 32e3d60680d56e4ca1c254876e107992eea733b9


Auto Update

Is there a way to update the images in real time, with no need to refresh the page?

hey @bisnuto, you ever get this sorted? I'm working on trying to figure it out as well.

Hey, I just forgot what kind of sort...could you tell me?
2016-02-23 4:43 GMT+07:00 Kristian David<EMAIL_ADDRESS>
hey @bisnuto https://github.com/bisnuto, you ever get this sorted? I'm
working on trying to figure it out as well.
—
Reply to this email directly or view it on GitHub
https://github.com/stevenschobert/instafeed.js/issues/358#issuecomment-187399471
.

--
http://nomad.blog.br/

I'm going to close this one as stale - it's almost definitely outside the scope of instafeed.js anyway.


Logging hook?

Hi, are there any hooks for logging?
It'd be super awesome if there was a to log all the features that are 'known about' and what they status is, including on a refresh.
Anyone know of a way?

Haven't heard any updates. Please re-open if the question is not resolved.


SIGSEGV in binn_load() when fed with random data

ASAN:DEADLYSIGNAL
=================================================================
==19372==ERROR: AddressSanitizer: SEGV on unknown address 0x7ffdef02fd7f (pc 0x5567a79c235b bp 0x7ffd966db680 sp 0x7ffd966db660 T0)
    #0 0x5567a79c235a in AdvanceDataPos /home/mannol/Documents/Programming/B/src/binn.c:456
    #1 0x5567a79c5443 in binn_is_valid /home/mannol/Documents/Programming/B/src/binn.c:1237
    #2 0x5567a79c1f03 in binn_load /home/mannol/Documents/Programming/B/src/binn.c:340
    #3 0x5567a79ade2c in message_from_binn_raw /home/mannol/Documents/Programming/B/src/message.c:800
    #4 0x5567a7936b53 in test_message_fuzz /home/mannol/Documents/Programming/B/src/tests.c:877
    #5 0x5567a79275f5 in run_test /home/mannol/Documents/Programming/B/src/tests.c:50
    #6 0x5567a79bd57d in list_for_each /home/mannol/Documents/Programming/B/src/list.c:62
    #7 0x5567a792851f in run_tests /home/mannol/Documents/Programming/B/src/tests.c:3202
    #8 0x5567a794a1b8 in main /home/mannol/Documents/Programming/B/src/tests.c:3289
    #9 0x7f909e67d3f0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x203f0)
    #10 0x5567a7927389 in _start (/home/mannol/Documents/Programming/B/build/D/tests+0x2c389)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /home/mannol/Documents/Programming/B/src/binn.c:456 in AdvanceDataPos
==19372==ABORTING

EDIT:
Another one in a similar place:
ASAN:DEADLYSIGNAL
=================================================================
==19481==ERROR: AddressSanitizer: SEGV on unknown address 0x7ffed27d8404 (pc 0x55c48d1c240b bp 0x7ffea42b34a0 sp 0x7ffea42b3320 T0)
    #0 0x55c48d1c240a in binn_is_valid /home/mannol/Documents/Programming/B/src/binn.c:1223
    #1 0x55c48d1bef03 in binn_load /home/mannol/Documents/Programming/B/src/binn.c:340
    #2 0x55c48d1aae51 in message_from_binn_raw /home/mannol/Documents/Programming/B/src/message.c:800
    #3 0x55c48d133b53 in test_message_fuzz /home/mannol/Documents/Programming/B/src/tests.c:877
    #4 0x55c48d1245f5 in run_test /home/mannol/Documents/Programming/B/src/tests.c:50
    #5 0x55c48d1ba57d in list_for_each /home/mannol/Documents/Programming/B/src/list.c:62
    #6 0x55c48d12551f in run_tests /home/mannol/Documents/Programming/B/src/tests.c:3202
    #7 0x55c48d1471b8 in main /home/mannol/Documents/Programming/B/src/tests.c:3289
    #8 0x7fba7fa233f0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x203f0)
    #9 0x55c48d124389 in _start (/home/mannol/Documents/Programming/B/build/D/tests+0x2c389)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /home/mannol/Documents/Programming/B/src/binn.c:1223 in binn_is_valid
==19481==ABORTING

Steps to reproduce (FUZZ):
while (1)
{
    uint8_t data[15000];
    // fill data[] with random bytes
    binn obj[1];
    binn_load((void*)data, obj); // << wait until it crashes
}

Another one in a similar place:
ASAN:DEADLYSIGNAL
=================================================================
==19481==ERROR: AddressSanitizer: SEGV on unknown address 0x7ffed27d8404 (pc 0x55c48d1c240b bp 0x7ffea42b34a0 sp 0x7ffea42b3320 T0)
    #0 0x55c48d1c240a in binn_is_valid /home/mannol/Documents/Programming/B/src/binn.c:1223
    #1 0x55c48d1bef03 in binn_load /home/mannol/Documents/Programming/B/src/binn.c:340
    #2 0x55c48d1aae51 in message_from_binn_raw /home/mannol/Documents/Programming/B/src/message.c:800
    #3 0x55c48d133b53 in test_message_fuzz /home/mannol/Documents/Programming/B/src/tests.c:877
    #4 0x55c48d1245f5 in run_test /home/mannol/Documents/Programming/B/src/tests.c:50
    #5 0x55c48d1ba57d in list_for_each /home/mannol/Documents/Programming/B/src/list.c:62
    #6 0x55c48d12551f in run_tests /home/mannol/Documents/Programming/B/src/tests.c:3202
    #7 0x55c48d1471b8 in main /home/mannol/Documents/Programming/B/src/tests.c:3289
    #8 0x7fba7fa233f0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x203f0)
    #9 0x55c48d124389 in _start (/home/mannol/Documents/Programming/B/build/D/tests+0x2c389)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /home/mannol/Documents/Programming/B/src/binn.c:1223 in binn_is_valid
==19481==ABORTING

The binn_load() function is unsafe in a sense that it doesn't check the bounds for the data buffer. It should receive another parameter for the size and make sure it doesn't read outside that size limit.

Indeed.
When the data buffer is correct (with data output from binn_ptr) it contains the size in it. So it reads the size from it.
This is the reason why it does not use a size parameter.
It is not intended to be used with other kind of data.
A previous version carried a "magic" identification in the header, but then it was removed as it is not used in most of the serialization libraries and it was increasing the size of the output.
I guess that this is no more used because we must use some kind of checksum in the transport protocol (most already have so we don't need to care). The checksum takes care of the entire packet instead of just the header, so it is a better approach.
Off course it does not cover the cases in which the serialized data is saved on a file and the storage gets corrupted with garbage data instead of the actual one. For these cases we must implement a checksum (maybe CRC32) and save it within the file too.

Oh. So what you are saying is that: I can check the validity of the size in the header and if it matches the buffer size it should be okay? In other words: I can change the binn_load() to accept size argument and compare it with header value?

It does not mean that the entire serialized content is OK, but at least it would avoid accessing data outside of the buffer bounds.
I could make a binn_is_valid_ex function for this as the binn_is_valid function does not accepts a size parameter, it reads the size from the buffer.

Ok, I just added a size argument to bin_load() and ran a fuzzing test and it didn't segfault. Having binn_is_valid_ex() in the API would be great.

Actually, I did another test with size data valid but everything else invalid and it crashes at the ~same spot because count is invalid. Is there a way to calculate count from the received data?

The count is also inside the buffer, but if the content is random or corrupted then it will fail.
The best thing to use to check integrity of the whole data buffer is a checksum. A basic crc32 would solve it.
But note that the transport protocols already have it, so maybe you will not need to implement another one.

What stops a potential attacker from faking checksum by providing valid checksum for invalid data?

Good point!
I'll see what I can do to avoid a SEGFAULT in these cases.

What a timing! I have just ran a test on a modified binn_is_valid() using a correct size but everything else invalid and worked out a fix:

valid size of the buffer must be known to the binn_is_valid()
verify that the header size and the valid size match
check for the buffer overflow/underflow on every increment of the p buffer iterator in binn_is_valid() such that p + increment is always < plimit

Yeah!
This is exactly what I am doing. Inside the AdvanceDataPos() function too.
Nice!

But I am not doing underflow checking. It is a good point too as an internal content size can be malformed (negative). Thanks!

mannol, if you wanna contribute you can send a PR. Or share code here.
I'm afraid to change the way the buinn_is_valid() function works, as many people already use it.
We could make it consider the value that is in the *psize argument is the size, but current code work without initializing it, like this:
int size;
if (binn_is_valid(buf, NULL, NULL, &size) == FALSE) xxx;

to get the current size. This is the reason I guess we should use another (additional) function. And one can even call the other to reduce code.

This is my dirty working function. Basically, there is no way to keep API backward compatibility with the existing function, hence a new function is needed. Either way it should be pointed out that this version must be used for verifying data received from network.

Thank you! I uploaded some modifications too, to the AdvancedataPos() function and where it is called.

I "reviewed" your commit and added some comments. Looks much cleaner than my solution.

OK, I will need to exit now. But today at night I continue the work.

I sent an update containing the binn_is_valid_ex() function.
You can check some usage info here.
Let's check if it passes the fuzzy test now ;)

Fix confirmed!
Tests I've ran:

Parsing of a fully random data
Parsing of a random data with valid size field
Parsing of a partially valid data with garbage

Wow!
Thank you mannol.
It was nice to work with you


Support complete grammar for obsolete message parse

Fixes #91
@whatyouhide I run into some issues again with yecc:
Compiling 1 file (.yrl)
Parse action conflict scanning symbol obsolete in state 0:
   Reduce to message_meta from '$empty' (rule 25 at location 191:1)
      vs.
   shift to state 11, adding right sisters to '$empty'.
Conflict resolved in favor of shift.

Parse action conflict scanning symbol obsolete in state 8:
   Reduce to message_meta from '$empty' (rule 25 at location 191:1)
      vs.
   shift to state 11, adding right sisters to '$empty'.
Conflict resolved in favor of shift.

Parse action conflict scanning symbol obsolete in state 10:
   Reduce to message_meta from '$empty' (rule 25 at location 191:1)
      vs.
   shift to state 11, adding right sisters to '$empty'.
Conflict resolved in favor of shift.

Parse action conflict scanning symbol obsolete in state 14:
   Reduce to message_meta from '$empty' (rule 25 at location 191:1)
      vs.
   shift to state 11, adding right sisters to '$empty'.
Conflict resolved in favor of shift.

Parse action conflict scanning symbol obsolete in state 16:
   Reduce to message_meta from '$empty' (rule 25 at location 191:1)
      vs.
   shift to state 11, adding right sisters to '$empty'.
Conflict resolved in favor of shift.

Parse action conflict scanning symbol obsolete in state 19:
   Reduce to message_meta from '$empty' (rule 25 at location 191:1)
      vs.
   shift to state 11, adding right sisters to '$empty'.
Conflict resolved in favor of shift.

Parse action conflict scanning symbol obsolete in state 22:
   Reduce to message_meta from '$empty' (rule 25 at location 191:1)
      vs.
   shift to state 11, adding right sisters to '$empty'.
Conflict resolved in favor of shift.

Parse action conflict scanning symbol obsolete in state 25:
   Reduce to message_meta from '$empty' (rule 25 at location 191:1)
      vs.
   shift to state 27, adding right sisters to '$empty'.
Conflict resolved in favor of shift.

Parse action conflict scanning symbol obsolete in state 30:
   Reduce to message_meta from '$empty' (rule 25 at location 191:1)
      vs.
   shift to state 11, adding right sisters to '$empty'.
Conflict resolved in favor of shift.

Parse action conflict scanning symbol obsolete in state 48:
   Reduce to obsolete_pluralizations from obsolete pluralization (rule 22 at location 183:1)
      vs.
   shift to state 47, adding right sisters to pluralization.
Conflict resolved in favor of shift.

src/expo_po_parser.yrl: Warning: conflicts: 10 shift/reduce, 0 reduce/reduce

I have no clue how to solve these.

Pull Request Test Coverage Report for Build 6cb35e77137f2b71dd512b5fb655fc38c840c38a-PR-94

2 of 2 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build a2262ad3dcc1ee462a905b6d4a6b31c8650e72a6:
0.0%

Covered Lines:
328

Relevant Lines:
328

💛  - Coveralls

I'll try to take a look at this 🙃

Yacc and me will not be friends :laughing:

Superseded by #99


Implement new kubectl command function

Issue:

Had to make changes to kubectl extension for other issues. Updating where kubectl apply and explain were previously used to the new kubectl command.
Problem

Updated kubectl from apply and explain to a single kubectl command function that can handle any kubectl situation. Also fixed a bug in the previous apply implementation.
Backports

https://github.com/rancher/rancher/pull/44608
https://github.com/rancher/rancher/pull/44609

Drone passing! removed [Draft / Don't Merge][v2.9][DNM][WIP] from PR title


Graph Filter Box Extension

Is your feature request related to a problem? Please describe.
Writing long or complex queries in the entry field for graph databases are very difficult because of the short entry field size. This forces users to use the Data Explorer in azure portal as it has a much wider field of entry.
Describe the solution you'd like
Could you extend the entry field to the width of the window or allow the entry to expand vertically to fit the size of the query text.
Describe alternatives you've considered
Currently using the Data Explorer within the Azure portal, but as it is new, it has a bug that renders the whole tab blank or freezes during heavy use in Chrome.
Additional context

Story:
As a Azure Data Explorer user, I would like the graph database query/filter entry field extended to the length of the panel or vertically extended to fit the length of the query, so that I can see my long transversals without having to scroll.
Story Points
1
Effort
Unknown (my assumption is minimal but I could totally be wrong!)
Business Value
100
Business Area
Architectural

The Cosmos team recently deprecated our integration with Azure Storage Explorer. Here is the full deprecation notice from the 1.15.1 Storage Explorer release notes:

The Azure Cosmos DB integration with Storage Explorer has been deprecated. Any existing functionality will not be removed for a minimum of one year from this release. Users should use the Azure Portal, the Azure Portal desktop app, or the standalone Cosmos Explorer instead – all of which contain many new features that aren’t currently supported in Storage Explorer. Additionally, the Azure Cosmos DB team has also open sourced the data explorer project and will be investing in their own desktop tooling at a later date. Please keep an eye on their repository for more information.

Currently, we are not prioritizing new features or bug fixes for Cosmos in Azure Storage Explorer. If you the issue you are reporting also applies to the Azure Portal or https://cosmos.azure.com, please file an issue in our open source Cosmos Explorer repo


Curl for Http Calls

I have checked the following:

[X] I've searched existing issues and found nothing related to my issue.

Describe the feature you want to add
Overview
Today Bruno uses axios underneath to make http calls. We are seeing some issues where people say that it works perfectly in Insomnia but not working on Bruno.
This ticket is to explore options around providing curl as an option
Bruno will default to axios for making http request, The idea here is to provide a toggle in preferences to use curl instead of axios
Mockups or Images of the feature
TBD

I would argue to switch to curl completely. Supporting two backends creates extra work, and during support-requests we have to ask "which backend did you use?".
There are subtle differences to the magic that axios applies and the raw curl requests, e.g. in the json-handling. Here I am sending an intentionally unusual json-request, which I do to evaluate a certain class of security vulnerabilities on server. I am sending it to a simple echo server:

However, when I inspect the output of the echo-server (which prints the raw request string), I notice that not only was the first key not sent, Bruno (axios) also stripped away the whitespace, but then added it when it shows the response! How can I then tell whether or not autoformatting is switched "on" on the server?

On the other hand, when I click "generate code", then half of the options show both keys in the bodies, the other half just one:
Http:
POST / HTTP/1.1
Host: localhost:3000
Content-Length: 37

{
  "hi": "there",
  "hi": "there2"
}

Javascript-Fetch
const url = 'http://localhost:3000/';
const options = {method: 'POST', body: '{"hi":"there2"}'};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}

Javascript-JQuery
const settings = {
  async: true,
  crossDomain: true,
  url: 'http://localhost:3000/',
  method: 'POST',
  headers: {},
  processData: false,
  data: '{\n  "hi": "there",\n  "hi": "there2"\n}'
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Especially the http-code is misleading, because as a naive user I would think "this is the raw packet on the wire. If we support two backends, then the code-generators need to respect that setting so that they generate the actual request that is sent by Bruno.
But I, as a user, don't want any of the magic that is applied by axios. I want to send and receives the requests exactly as they are. I think users that want to "auto-fixup" their requests are probably best served by a CLI script that runs over their bruno collection, possibly as pre-commit script. I'd be happy in assisting to write such a script -- I actually really care about standards. But I can only enforce standards-compliant servers (header-capitalization) when I can intentionally break the standard and/or see raw responses.

Thanks for starting this discussion, I think its crucial for many people (prob. especially security folks) to send requests with weird inputs / formatting / etc. exactly as they specified.

I would argue to switch to curl completely.

I fully agree with this statement. I would not expect a "normal" end-user to care about which library is used to send out the actual HTTP request until they hit some unexpected behaviour. For that there would be a need to document all the little things that work differently for the different backends (which is probably a list that may never be completed as new things might get discovered).


Dynamic check_shapes

Makes the check_shapes object check on destruction if dynamic shapes are allowed and if any of the shapes are dynamic
You would add a .allow_dynamic() to the end of a check_shapes{} to allow for dynamic shapes (Doesn't work well with constness of the struct, using constructor initialization instead)
Adds some comments about the various methods in the struct
Depends on #1249

Please make sure to fix conflicts and merge from master.


⚠ Bofrost.lu has degraded performance

In 0ae41bd, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1206 ms

Resolved: Bofrost.lu performance has improved in 9233f92.


[CS2103T-W1601] DonnaFin.io

With DonnaFin, financial advisors have easy access to all their client's information. Use our keyboard-friendly app to supercharge your workflow and always see an easy to use, clean interface for all the notes you need for your work.

Codecov Report

Merging #68 (b7e1631) into master (ba53b8c) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #68   +/-   ##
=========================================
  Coverage     72.15%   72.15%
  Complexity      399      399
=========================================
  Files            70       70
  Lines          1232     1232
  Branches        125      125
=========================================
  Hits            889      889
  Misses          311      311
  Partials         32       32

Continue to review full report at Codecov.

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


NO-JIRA: Fix dependabot pr 3414

What this PR does / why we need it:
Which issue(s) this PR fixes (optional, use fixes #<issue_number>(, fixes #<issue_number>, ...) format, where issue_number might be a GitHub issue, or a Jira story:
Fixes #
Checklist

[ ] Subject and description added to both, commit and PR.
[ ] Relevant issues have been referenced.
[ ] This change includes docs.
[ ] This change includes unit tests.

/test e2e-kubevirt-aws-ovn
/test verify

/test e2e-kubevirt-aws-ovn

/test unit
/test images

/test e2e-kubevirt-aws-ovn

/test all

/retest-required

/retest-required

/approve

/lgtm

/lgtm

/test verify

/retest-required

/retest

/lgtm

/lgtm


Do not use default tags for built f39 base and core image

I like it. One side note from me is that we might want to release a new version of the action and require that version here so we are sure that the functionality is available. But it's not a hard requirement.


Mark beta/alpha release as pre-release

System Details

N/A
"Th24" M126.0.6478.251 (and potentially future releases)

Problem
The Th24 release M126.0.6478.251 is currently marked as the latest general release, but it's a Beta release; the release title beginning with "BETA".
So, currently both the stable releases and the latest beta show up as regular versions according to GitHub and it's not possible to distinguish between stable and beta releases via the GitHub API. One can only distinguish them by reading the title/description.
Possible Solution
Every alpha/beta release to be marked in GitHub as a "pre-release" and for "latest releases" to be used only for regular releases.
Screenshots

Additional Notes
Additionally, pre-releases could be marked as such with the version number and the suffix "-beta" or "-alpha".

@slycordinator I'm aware. The annoying thing is, it wont show on the main page. You have to go to releases, and on top of that, it shows the latest stable by default, and you have to scroll up to see the latest beta release. This makes it hard for users to see "at a glance" that I released the beta build.
It is something I have hated about GitHub. I purposely marked it as a regular release since, if the thorium-2024 flag isn't activated, it is just as stable and looks the same as before. That way people can easily see I released it and more people will test it.


Bug: #unless gets ignored on Production Server

When the Vapid server is started in the production environment, the #unless template tag will be completely ignored. In the development environment, it works as expected (except for #139).
To Reproduce
Steps to reproduce the behavior:

Start the Vapid server in the production environment (e. g. by using PM2 on a web server)
Navigate to a page with an #unless template tag

Expected behavior
The #unless content will be displayed like on the development server
Your Environment
Include relevant details, so others can replicate the issue.

OS: CentOS Linux release 7.7.1908 (Core) (Web Server), macOS Catalina 10.15.4 (Local)
Browser: Safari 13.1
Node Version: 12.16.1
Vapid Version: 0.9.5

See #186

Fixed in #186


Inconsistency with eligibility evaluation for string fields

Describe the bug
For eligibility conditions on string fields, it seems that the applicant is able to submit the application with an answer that matches eligibility conditions, however, in the admin Applications UI, the application shows up as ineligible.
To Reproduce
Steps to reproduce the behavior:

Create a program with a string-based eligibility condition, e.g. require the applicant's name to be equal to Johnny. Make sure eligibility is set to gating.
Publish the program.
Log out and log in as guest.
Apply to the program with the correct answer, e.g. Johnny. Observe that you're able to submit the application.
Try to edit your application to something incorrect and verify that you can't submit.
Log out and log back in as program and civiform admin.
View applications for the program.
Observe that the application is marked ineligible.

Edit the eligibility setting.
Note that the text to validate against has been changed to include quotes, e.g. Johnny has become "Johnny".

Expected behavior
The application should be eligible. The string should not have quotes added.
Additional context
I included the bit about the quotations because it may indicate the root cause.

@reemaka do you have a screenshot of the page showing the application as ineligible?

@bion Just tried it again and it's working for me this time and correctly shows that it's eligible. Maybe #4414 (which is fixed now) was actually what was causing it to be incorrect.

FWIW comparison strings are quoted so that they work correctly when plugged into the JsonPath library: https://github.com/civiform/civiform/blob/mainserver/app/services/applicant/predicate/JsonPathPredicateGenerator.java#L140
It probably would have been better to add the quotes conditionally for comparison strings where I linked above instead of storing them in the DB that way, but the original implementation was written in haste.

unable to reproduce


Change built/ Directory to Either build/ or dist/

          Small change: I pretty much use `build` or `dist` everywhere, could you use one of those?

Originally posted by @queicherius in https://github.com/queicherius/gw2api-client/pull/75#discussion_r1186735951

Changed to dist/


Hash to scalar

Draft PR to discuss the pros / cons of this approach.
The motive is to convert any arbitrary bytes to a scalar.
Technicalities
This PR is a literal interpretation of
"when hashing to scalars for an elliptic curve (sub)group with prime order r, it suffices to instantiate hash_to_curve with target field GF(r)."
See https://www.ietf.org/archive/id/draft-irtf-cfrg-hash-to-curve-10.html#section-5-4
But there are some further considerations, see the questions at https://crypto.stackexchange.com/questions/94971/choosing-between-bls-sig-keygen-and-hash-to-field
Should L stay as 64 or should it be 48?
Should DST stay the same, or replace G2 with Fr, or some other replacement, or empty/blank?
Are there any test vectors that can be added to the tests?
Tests
I haven't added any tests for this change in functionality, I'm open to suggestions though.
Alternatives
There's a similar idea in bls-sig-keygen
https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-bls-signature-02#section-2.3
It also takes arbitrary bytes and converts to the range 0 <= scalar < CURVE.r
API and style
Is it ok to refer be inconsistent in utils by including it as a one-liner hashToField: hash_to_field? Other util functions are implemented in place. Also mixing the camel case and snake case is unusual. I figured this was the easiest way to expose it without changing the existing places hash_to_field is used.
Should we add an example in readme highlighting that randomPrivateKey has an alternative option by passing random bytes into hashToField? We don't want to replace randomPrivateKey since it would become async and break the api.
What about if keygen is added later, then there'd be three different methods for generating a random private key.

Should DST stay the same, or replace G2 with Fr, or some other replacement, or empty/blank?

We should let users pass custom DST to the method. Just like the spec says.

Should L stay as 64 or should it be 48?

Same with L. Perhaps we could all parameters through an options hash? {DST, F, p, m, L} are the vars used in spec.

I haven't added any tests for this change in functionality, I'm open to suggestions though.

Let's add three simple tests: hashing to curve.p (like we do today), hashing to curve.r, hashing to something else. See if you can find for test vectors from specs.

Is it ok to refer be inconsistent in utils by including it as a one-liner hashToField: hash_to_field?

Yes. I've named it in snake_case for Googling purposes. It's easier to search on github for the spec-named function.

Should we add an example in readme highlighting that randomPrivateKey has an alternative option by passing random bytes into hashToField

No. Low-level crypto should not concern users.

What about if keygen is added later, then there'd be three different methods for generating a random private key.

No plans to add keygen to the repo. The repo should stay minimal and not add any additional primitives esp ones that are only used in eth.

We should let users pass custom DST to the method. Just like the spec says.

Fair enough, but if users leave DST unspecified, should the default be the current DST or an empty string? I'm wondering whether we're introducing something that easily allows the user to make mistakes. I don't know if we are introducing a footgun, what do you think?

Perhaps we could all parameters through an options hash? {DST, F, p, m, L} are the vars used in spec.

For my own future reference, these parameters are specified here: https://www.ietf.org/archive/id/draft-irtf-cfrg-hash-to-curve-10.html#name-hash_to_field-implementation

Let's add three simple tests: hashing to curve.p (like we do today), hashing to curve.r, hashing to something else. See if you can find for test vectors from specs.

Sounds good. I'll look further for some specs for hash to scalar (no luck so far) and add some tests.

No plans to add keygen to the repo. The repo should stay minimal and not add any additional primitives esp ones that are only used in eth.

No worries, that sounds fine. But a couple of points for discussion:
keygen is part of the bls signature spec, not specific to ethereum: https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-bls-signature-04#section-2.3
I agree it's probably better to stay minimal rather than introduce new cryptographic primitives.
keygen is pretty handy since it converts arbitrary bytes to a uniform value between 0 and r. It's probably better to have some way to do that (either hash_to_field or keygen) than leave it up to users to do outside of the library. Both these standardized ways have been well thought out, which is why I'm hoping to have access to one or the other (or both).
Downside of hash_to_field is uncertainty of which parameters to use, especially L and DST (hopefully the uncertainty can be resolved). Downside of keygen is the spec requires minimum 32 bytes so if passing in less than that it must throw an error (so it doesn't accept any arbitrary bytes, it's any bytes length 32 or more).

The comments in index.ts for https://github.com/iancoleman/noble-bls12-381/commit/641e53b330dd07d6a689a28ddc4a90850cb4c01a are quite detailed and explain how the changes match the spec.
L is computed so CURVE.P and CURVE.r give the correct value for their different bit lengths.
DST for hash to scalar is still something I'm researching. Same for test vectors. More to come hopefully soon.

keygen is part of the bls signature spec

I did not realize this. It's great to have, but don't want to bring up dependency on hkdf (hkdf-sha256 etc).

but if users leave DST unspecified, should the default be the current DST or an empty string

I think the default one should be the one this library uses. The reason is that DST specifies hash type, curve type etc. We only have bls12-381 here.

I think the default one should be the one this library uses. The reason is that DST specifies hash type, curve type etc. We only have bls12-381 here.

Yeah I think this is right.
I was incorrectly thinking the G2 in DST was referring to the output type, but it's referring to the broader way that bls is being used. G2 in DST means publickey/signature is G1/G2, whereas G1 in DST means publickey/signature is G2/G1. Like the difference between min_pk vs min_sig in blst.
I can't find this explicitly stated in the spec (maybe it's there and I just can't recognize it) but I'm pretty sure DST is not about the output type, it's about the way the groups are used. So BLS12381R1_XMD:SHA-256_SSWU_RO_ is probably nonsense. Would be good to definitely confirm it.

Regarding async, it looks like it all stems from sha256 being async. sha256 is a very fast operation, is there any particular reason for it being async?
I realize that changing it to not be async will change the api quite a lot (which is to avoided if possible) but it would greatly simplify things and would also enable randomPrivateKey to be able to use hash to scalar.
I'm not bothered either way, just curious.

The only reason sha256 is async is because we aim to use zero dependencies. Including sha256 implementation is at least 200 lines of code. Using the built-in one allows not to do it, but it's async as per browser standards

Some notes for my future reference:
There are some tests for hash_to_scalar in the bls12_381 rust crate
https://github.com/zkcrypto/bls12_381/blob/e501265cd36849a4981fe55e10dc87c38ee2213d/src/hash_to_curve/map_scalar.rs#L20
However these tests use expanded messages as the input, ie not msg but expand_message_xmd(msg, DST, 48), so it doesn't directly translate into the implementation here.
It's also hidden behind a feature flag experimental. All hash_to_curve is experimental, not just hash_to_scalar.

The implementation passes the tests in the rust crate.
But the access to the scalar value as result[0][0] is pretty rubbish (eg this line in the test). It's possibly better to create utils.hashToScalar as a wrapper around hash_to_field. What do you think?

I think you should use Object.assign({}, htfDefaults, options).

@iancoleman no, we should keep it an array of arrays, because this way it's one api for everything. Users can then specify strict typescript types like [[number, number]]

I'm not seeing any more changes needed here.
I'm not especially attached to getting it merged considering it's still a pretty under-specified part of the spec, but I would use the changes if it were there. Let me know how you'd prefer to proceed, I'm happy to close or merge either way.

Let's merge it. Can you change the pr status?

Thank you.


($$18++NEW@SEX))*Samra Chaudhry Viral Video Samra Chaudhry Leaks Original Video On Social Media X TikTok Trending #61

44 seconds ago
L𝚎aked Video Samra Chaudhry Original Video Viral Video L𝚎aked on X Twitter Telegram
..
[-𝐅𝐔𝐋𝐋-𝐕𝐈𝐑𝐀𝐋-]— Samra Chaudhry Video Original Video Link Samra Chaudhry Video Viral On Social Media X Now [1U2M3N]
[-wATCH-]— Samra Chaudhry Video Original Video Link Samra Chaudhry Video Viral On Social Media X Trending Now
[-wATCH-]— Samra Chaudhry Video Original Video Link Samra Chaudhry Video Viral On Social Media X Trending Now
[-wATCH-]— Samra Chaudhry ʟᴇᴀᴋᴇᴅ Video ᴠɪʀᴀʟ On Social Media ˣ ᵀʷⁱᵗᵗᵉʳ
[-wATCH-]— Samra Chaudhry ʟᴇᴀᴋᴇᴅ Video ᴠɪʀᴀʟ On Social Media ˣ ᵀʷⁱᵗᵗᵉʳ
[-wATCH-]— Samra Chaudhry Video Original Video Link Samra Chaudhry Video Viral On Social Media X Trending Now
Samra Chaudhry Original Video video took the internet by storm and amazed viewers on various social media platforms. Samra Chaudhry, a young and talented digital creator, recently became famous thanks to this interesting video.
L𝚎aked Video Samra Chaudhry Original Video Viral Video L𝚎aked on X Twitter
Samra Chaudhry Original Video video oficial twitter
L𝚎aked Video Samra Chaudhry Original Video Viral Video L𝚎aked on X Twitter...

4


Add reset signaling

What do these changes do?
Fixes crash gunicorn worker on startup using systemd.
Are there changes in behavior for the user?
Not.
Related issue number
Not.
Checklist

[x] I think the code is well written
[ ] Unit tests for the changes exist
[ ] Documentation reflects the changes
[x] Add yourself to CONTRIBUTORS.txt

The format is <Name> <Surname>.
Please keep alphabetical order, the file is sorted by names.

[ ] Add a new entry to CHANGES.rst

Choose any open position to avoid merge conflicts with other PRs.
Add a link to the issue you are fixing (if any) using #issue_number format at the end of changelog message. Use Pull Request number if there are no issues for PR or PR covers the issue only partially.

Current coverage is 98.79% (diff: 100%)

Merging #1397 into 1.1 will increase coverage by <.01%

@@                1.1      #1397   diff @@
==========================================
  Files            29         29
  Lines          6782       6784     +2
  Methods           0          0
  Messages          0          0
  Branches       1129       1130     +1
==========================================
+ Hits           6700       6702     +2
  Misses           38         38
  Partials         44         44

Powered by Codecov. Last update f137b18...13a4cef

Please elaborate why resetting signals to default solves your issue.
BTW It should break asyncio subprocess support.

Indeed it does not solve the problem. I will examine the issue further and write the result here.


Markdown output has title

Feature: Title
In order to easily tell that this file is a Gherkin output file
As a document reader
I want a title in the document as the first line
Scenario: Output has title on first line

When I generate Markdown output
Then the Markdown output has the line

Line No.
Content

1
# Features

Completed in branch feature/markdown_output

Thought of some more refactoring before closing this

Stylist and TitleBlock introduced to separate concerns and make future features easier to implement.


script error keephunting no such export spawnped in resource qb-target

i just ran in to this problem it takes away the hunting areas i have no idea on how to fix it.

Hi, make sure to update the qb-target and load my script after that.

what do you mean update like the qb-target it self or the code

update qb-target itself

okay thanks


aarch64 not available in certain releases

I've noticed that aarch64 files are not available in a few releases. E.g.:

v2.1.0
v2.1.0-RC6
v2.1.0-RC5

While in most others it is:

v2.1.0-RC4 - https://github.com/coursier/coursier/releases/download/v2.1.0-RC4/cs-aarch64-pc-linux.gz
v2.0.16 - https://github.com/coursier/coursier/releases/download/v2.0.16/cs-aarch64-pc-linux

Would it be possible to make aarch64 files available for all released versions?

Running Linux aarch64.
I have scala-cli installed via sdkman:
$ sdk list scalacli
================================================================================
Available Scalacli Versions
================================================================================
 > * 0.2.1
     0.2.0
   * 0.1.20

================================================================================
+ - local version
* - installed
> - currently in use
================================================================================

Latest 0.2.1 doesn't work:
$ scala-cli
Exception in thread "main" java.lang.NoClassDefFoundError: com.oracle.svm.core.JavaMainWrapper
        at scala.cli.internal.Argv0.get(Argv0.scala:16)
        at scala.cli.ScalaCli$.<clinit>(ScalaCli.scala:28)
        at scala.cli.ScalaCli.main(ScalaCli.scala)

It was working with 0.1.20 however (but also not with 0.2.0.

@mkurz isn’t that related to scala-cli instead of coursier?

Oopsss sorry, seems I had to many tabs open and posting in the wrong issue. Sorry!

The binaries for aarch64 and release 2.1.0 are now available in the repo linked by @alexarchambault.

Cool, thanks folks! 👍