JPG Error: Input file is of an unsupported image formatVipsForeignLoad

When I run the following code
var imgInput ='/home/app/logo/logo100x100.jpg'
var imgOutput ='/home/app/logo/logo100x100.jpg'
sharp(imgInput)
.resize(50, 50)
.toFile(imgOutput, function(err) {
if (err) console.log(err)
// Some other code
});
I get the following err ...
Error: Input file is of an unsupported image formatVipsForeignLoad: "/home/app/logo/logo100x100.jpg" is not a known file format ]
What could I be doing wrong ? I have rechecked twice and the jpg is of proper format.

Hello, if the input and output paths contain the same string value then this should be failing with "Cannot use same file for input and output".
The "unsupported image format" error can also be obtained when the input path is incorrect or invalid.
Finally, libvips may somehow have been compiled without JPEG support. This is unlikely but you can check via sharp.format.

You are correct my mistake. Had same path for input and output file.


Bugfix/same configuration key overwrites other class

In Configuration trait, __CLASS__ is used to prefix the key. But:

When used in a trait method, __CLASS__ is the name of the class the trait is used in.

This results in __CLASS__ always being  Task\BaseTask, regardless of the actual task.
This PR fixes this (and adds a test ;).

I missed this point and you covered my back. Thank you!


add React/noRenderReturnValue

rule : https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-render-return-value.md
ref: #341

@sebmck Thanks, I changed it as your suggestions :)

Awesome! Looks good! The diagnostic also now points to the specific ReactDOM.render call which is great. Thank you!


Upgrade to Asciidoctor.js 1.5.3

Could you please test that everything is working fine with version 1.5.3-preview.2 ? If this is the case I will release a final version.
Thanks :smile:

Should we update the title to 1.5.4?

Yes, 1.5.4 will be out soon (hopefully). I need to test that the new build and release tasks produce the expected result. I think I will release a preview version, just to make sure that I didn't miss something.

Preview sounds good, though perhaps just call it a release candidate?

That's probably a conversation for the version thread, but my understanding is that "preview" means "early prototype", something that is only partially implemented. Another option here is "beta", though I think release candidate more accurately describes where we are.

@anthonny What version of asciidoctor.js are we consuming now?


Hierarchical Cascade Layers with @layer Guidelines

Pull Request
🤨 Rationale
Provides guidelines for css styling used in #1355

👩💻 Implementation
Added docs and examples to css guidelines for using @layer

🧪 Testing
N/A

✅ Checklist

[x] I have updated the project documentation to reflect my changes or determined no changes are needed.

We can merge these changes. @jattasNI worth reviewing if we should update recommendations / being aware of for future code reviews


this.props.children an empty array in nested react-router route

This has only started since v6.1.0
import { options, h, render } from 'preact';
import { hashHistory, Route, Router, Redirect } from 'react-router';

class App extends Component {
  render() {
    return (
      <Router history={ hashHistory }>
        <Route path="main" component={ MainPage }>
          <Route path="connect" component={ ConnectTab } />
          <Route path="saved" component={ SavedTab } />
        </Route>
        <Redirect from="/" to="/main/connect" />
      </Router>
    );
  }
}

class MainPage extends Component {
  render() {
    return (

App name

        { this.props.children }

    );
  }
}

render(<App />, document.getElementById('app'));

In 6.1.0 this.props.children is []

So I've tracked this down:  preact-compat changes VNode.children to be only a VNode instead of an Array (as React components expect).  However, in 6.1.0 the algorithm for flattening children changed and it ended up not accounting for this case.  I've got a fix, I'm just tweaking the size and checking performance.

Fix released in 6.2 👯


Add cors to indexer server

Need to install cors and do something like this:
app.use(cors());

Closed by https://github.com/nomad-xyz/monorepo/pull/210


swap dimensions with multi-dimensional coordinates

Hi,
This is a usage question. I've got some GRIB weather data, loaded with cfgrib into xarray.
<xarray.Dataset>
Dimensions:            (x: 421, y: 461)
Coordinates:
    time               datetime64[ns] 2015-05-10T12:00:00
    step               timedelta64[ns] 00:00:00
    heightAboveGround  int64 10
    latitude           (y, x) float64 44.77 44.77 44.77 ... 56.14 56.14 56.14
    longitude          (y, x) float64 2.976 3.011 3.046 ... 19.75 19.8 19.84
    valid_time         datetime64[ns] 2015-05-10T12:00:00
Dimensions without coordinates: x, y
Data variables:
    u10                (y, x) float32 ...
    v10                (y, x) float32 ...
    si10               (y, x) float32 ...
Attributes:
    GRIB_edition:            2
    GRIB_centre:             edzw
    GRIB_centreDescription:  Offenbach
    GRIB_subCentre:          255
    Conventions:             CF-1.7
    institution:             Offenbach

The dimension is x,y. If I want to export this to GeoTIFF using rioxarray, I get the wrong results as the dimensions should be latitude/longitude, not x/y. Is there any way to "transform" the data or something like this.

I think you're looking for .rename. If not, could you post a MCVE as per the issue template please?

I don't see how .rename would work for me - could you give me an example?
Expected result is something like:
<xarray.Dataset>
Dimensions:            (latitude: 421, longitude: 461)
Coordinates:
    time               datetime64[ns] 2015-05-10T12:00:00
    step               timedelta64[ns] 00:00:00
    heightAboveGround  int64 10
    latitude           float64 44.77 44.77 44.77 ... 56.14 56.14 56.14
    longitude          float64 2.976 3.011 3.046 ... 19.75 19.8 19.84

Based on your input and expected result, I would guess that you are looking to regrid your data from the x/y curvilinear grid of your GRIB weather data to a new rectilinear (lon/lat) grid?
If so, I would suggest using xESMF (example here), since xarray itself does not appear to support this type of interpolation yet. As an example, given the dimension names you currently have and expect in the output, your code could look something like the following:
import xesmf as xe

# ...load data...

ds_xy_grid = ds_xy_grid.rename(latitude='lat', longitude='lon')
ds_out = xr.Dataset({'lat': (['lat'], np.linspace(44.77, 56.14, 421)),
                     'lon': (['lon'], np.linspace(2.976, 19.84, 461)})
regridder = xe.Regridder(ds_xy_grid, ds_out)
ds_lonlat_grid = regridder(ds_xy_grid)
ds_lonlat_grid = ds_lonlat_grid.rename(lat='latitude', lon='longitude')

@jthielen Thank you! This is pretty much what I was looking for.
If someone else sees this: your line
regridder = xe.Regridder(ds_xy_grid, ds_out) is missing the method e.g. regridder = xe.Regridder(ds_xy_grid, ds_out, 'bilinear')


Update CI and use clap for example CLIs

@scottopell has made some great contributions to this codebase by improving on CI and updating example CLIs to use clap. This contributes those changes back into the codebase.
I converted to workspaces in a separate PR because I had to rework nexrad-decode to maintain history (I didn't use git subtree when I originally migrated work from nexrad).

Saw you merged #2 instead, also looks great to me, I'll base any future PRs off of main of this repo 👍


Update part4.md

Update outdated shell commands and responses.
Proposed changes
Existing documentation did not match actual behavior - updated to correspond
with actual behavior.

Deploy preview for docsdocker ready!
Built with commit daa1a6881374934eddbfb05b7493c0197160f244
https://deploy-preview-9849--docsdocker.netlify.com


Progress bar

Progress bar (on regular and dark mode)
Fix #9
Test URLs:

Before: https://main--elco-aerotop-sg--hlxsites.hlx.page/de/
After: https://progress-bar--elco-aerotop-sg--hlxsites.hlx.page/de/

right now, the JS code would allow two progress bars only? authors could add more rows in the content?

@solaris007 Ok I fixed the issue cold you review now please?

@solaris007 Oh just fixed first issue, let me check all the other ones you pointed out


Remove the YOLOv5 dependency from the YOLOv7 serverless function

Motivation and context

For some reason, the YOLOv7 function uses ultralytics/yolov5 as the base image, despite not depending on YOLOv5 in any way. Replace it with generic base images.
How has this been tested?

Manual testing.
Checklist

[x] I submit my changes into the develop branch
[ ] I have added a description of my changes into the CHANGELOG file
[ ] I have updated the documentation accordingly
[ ] I have added tests to cover my changes
[ ] I have linked related issues (see GitHub docs)
[ ] I have increased versions of npm packages if it is necessary
(cvat-canvas,
cvat-core,
cvat-data and
cvat-ui)

License

[x] I submit my code changes under the same MIT License that covers the project.
Feel free to contact the maintainers if that's a concern.

I have tested this PR on GPU, it works fine.

@kirill-sizov Thanks!


Enhancement - show loading state when start evaluation btn is clicked

Description
This PR resolves the problem of initiating an evaluation for a variant twice. Currently, when the user clicks the 'Start a new evaluation' button, there is no indication that the evaluation is underway. To address this, I introduced a new state that notifies the user when the evaluation is starting. Consequently, the button is disabled to prevent accidental multiple clicks.

Member

I raised a PR to improve the user experience on the evaluations page, as I noticed that there was a problem. When a user clicks on the button to begin a new evaluation for a variant, there is no indication that the process has started. As a result, users may click the button multiple times, creating duplicate evaluations for that variant. This, in turn, causes an error to be raised (although I can't remember the name of the error), which appears when you return to the evaluations page.
Upon rechecking, the bug is no longer present, making this PR unnecessary.
agenta-baby_name_generator_evaluations.webm


Incompatibility with the aether II

The game closes without crash report when aether II 0.2.2 and VW 429 are present in the mods folder. When I look in the game output it says "process crashed with exit code 1".

Aether II loads correctly on my end.


Change layers.Markers to layers.Points

Description
As discussed in #334, this PR renames the Markers layer to Points layer.
Type of change

[x] Bug-fix (non-breaking change which fixes an issue)
[x] This change requires a documentation update

References
Closes #334
How has this been tested?
I ran all of the example files that were touched by this PR.

[x] /examples/add_points.py
[x] /examples/annotate-2d.py
[x] /examples/to_svg.py
[x] /examples/nD_points.py

Final checklist:

[x] My PR is the minimum possible work for the desired functionality
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation

@AhmetCanSolak, I need to update the .rst files for the docs (e.g., napari.layers._markers_layer.rst). Are those autogenerated or should I edit them manually?

Seems like a lot of unrelated docs are changed but i guess it shouldnt make too much off a difference so it's fine

It had been a while since we'd rebuilt the docs. I'm going to go ahead and merge

@kne42 yeah, the doctree hadn't been rebuilt in a long time :/ There are some warnings that should probably be attended to, but I'll make a separate issue to address that.


Per-workspace build directory

My workflow often involves build directories that were created outside of an IDE (on the command line), and they don't always have the same name or location. However, CMake Tools forces the build directory to always have the same name and location relative to the workspace. It would be nice if this could be configured on a per-workspace basis.

Have you seen the cmake.buildDirectory setting?  We default to ${workspaceFolder}/build but you should be able to set the build location to wherever you want.  Or am I misunderstanding your issue?

Have you seen the cmake.buildDirectory setting?

Yes, I saw that in the settings, but that configures it at a global level. I might have one workspace where the build directory is at build, but another where it's at build/ninja, and I want to configure this on a per-workspace basis.

VS Code lets you do that too.  If you click on the "workspace" tab (or "Folder" for multi-root projects) you can select a different build directory for each folder you open.  This will end up saving a setting in the ${workspaceFolder}/.vscode/settings.json file that overrides the global setting and applies just to that folder.

D'oh! I see it now. I didn't realize settings in general could be configured on a per-workspace (and apparently per-folder) basis. Thanks for helping a n00b.

Glad that worked for you. Not to worry about not seeing that in the UI. It's very easy to miss.


Handle SDL conversion for enums that are not specified as a map

The library expects enums to be specified in the following format:
{:enums
 {:Episode
  {:description "The episodes of the original Star Wars trilogy."
   :values [{:enum-value :NEWHOPE :description "The first one you saw."}
            {:enum-value :EMPIRE :description "The good one."}
            {:enum-value :JEDI :description "The one with the killer teddy bears."}]}}}

but a simpler format is also valid (https://lacinia.readthedocs.io/en/stable/enums.html)
{:enums
 {:Episode
  {:description "The episodes of the original Star Wars trilogy."
   :values [:NEWHOPE :EMPIRE :JEDI]}}}

This PR handles the simple case.

Thanks!


Amplitude instances

Summary
Hi! We were using amplitude-js and now we are switching to amplitude-ts, but it seems that the whole instances concept has been removed.
Motivations
We would like to be able to register different instances and send events to them independently. Here is the previous doc, where we were able to perform this:
var instance1 = amplitude.getInstance().init("API_KEY"); // initializes default instance of Amplitude client
var instance2 = amplitude.getInstance("instance").init("API_KEY"); // initializes named instance of Amplitude client

Thanks!

Hi @JulianRomana. Thanks for submitting an issue. This is super helpful feedback. Your observations are correct, this new SDK does not support multiple version (at least not yet). Out of curiosity, what is the goal/s you are trying to achieve that multiple instances help with? Do you have multiple projects/api keys, or configuration, or http destination? Any info here would be super useful. Thanks so much.

Hi @kevinpagtakhan! Thanks for responding so fast!
Basically, we have a tracking library, where we want for some cases, send specific tracking events to a first amplitude project, and the others case will be to another one. This is motivated by having different tracking plan on a same web app.
Tell me if i'm not being clear, I will give you more precisions!

Hi @JulianRomana, support for multiple instances is not included in the first iteration of this new SDK, but we remain open to supporting multiple instances in the future. Out of curiosity, why did your team decide to maintain different tracking plans/projects for the same web app?

Hi again! We want to be able to maintain a legacy tracking plan, so we have a long-term overview of the company's performance + the data and product team we still be able to use the data while in the mean time want to be able to plug new tracking plans thanks to every data we collected and what we improved!
I hope this helps!
Also would you have an ETA for  such a feature?

Hi @kevinpagtakhan,
On our end, we currently utilize an Amplitude instance distributed through Google Tag Manager across the company's properties. Additionally, we have a dedicated instance initialized within our app to keep control of the initialization properties, and the flow and to segregate data on a separate dashboard. The previous Amplitude library effectively handled this scenario, and transitioning from the Maintenance SDK to the current one presents challenges due to the absence of such a feature.
One specific issue is with the attribution event, where - for instance - setting utm_* properties only occurs once and is often associated with the global instance than our app's project. To work around this limitation, I am currently leveraging from the @amplitude/plugin-web-attribution-browser package, which I had. to the desired instance. However, this approach is suboptimal/hacky.
Therefore, it would greatly benefit us to have a GetInstance-like method there. Such a method would enable us to ensure that the correct data is sent to the appropriate instance/project.

Hi @kevinpagtakhan,
On our end, we currently utilize an Amplitude instance distributed through Google Tag Manager across the company's properties. Additionally, we have a dedicated instance initialized within our app to keep control of the initialization properties, and the flow and to segregate data on a separate dashboard.
One specific issue we have while transitioning from the maintenance SDK to this one is the attribution event where - for instance - setting utm_* properties only occurs once per session and is often associated with the global instance than our app's project, since the global one loads much faster. As far as I know from reading the documentation, there is no control over when to trigger it / for which instance. To work around this limitation, I am currently leveraging from the @amplitude/plugin-web-attribution-browser package, which I add to the desired instance. However, this approach is suboptimal/hacky.
Using createInstance is not helping given the above scenario, would you have a better way in mind?


Websocket Error when local hosting in GitHub Codespaces

When attempting to access a locally hosted website in GitHub Codespaces with port forward, the following error pops up:
Cannot connect to server: websocket error. Check if server is reachable at wss://curly-guide-94xqrvv6pgw3pxww-8000.app.github.dev/_event
To reproduce it, just run
reflex init
reflex run
in a GitHub codespace
then go to the forwarded port

Absolutely no clue why this happens so far

Maybe a documentation issue... if the port 8000 is not "public", then you have to access it via HTTP to allow github to authenticate you, then you can connect the websocket.
For example, I open the port 8000 and get {"detail": "Not found"}: https://ubiquitous-train-v64gj575pvcp4pg-8000.app.github.dev/
Then when I open the port 3000 at https://ubiquitous-train-v64gj575pvcp4pg-3000.app.github.dev it actually connects and the app is fully functional.
I wonder if there is a way to automate this, or at the very least print a message when starting reflex in a codespace, suggesting to access the port 8000 tunnel first.

I'm gonna take a look at this - gimme a bit

@masenf What I found is that I just had to set the port 8000 to public (in port forwarding), and then it works - I don't even have to access it. I can't seem to get it to work otherwise.
The bigger issue that I see here is that Reflex doesn't automatically port forward 3000 and 8000 - when you do follow the localhost:3000 link with ctrl+click, it does then set up port forwarding (even though it should do it when you run the app at all) - but you have to manually set up the port forwarding for the backend port (8000) and switch it to public - both of these should be automated.

@masenf done further testing - it's definitely the fact that you have to manually set the port forwarding for the backend port (8000 by default) to public - there should be some way to detect if code is running in codespaces and then automatically set this up - I'm not well-versed in this so hopefully your team can add this to a to-do of some sort 🤞.

Our devcontainer json already forwards ports 3000 and 8000 by default, but we cannot make them public because the workspace is not trusted (https://github.com/microsoft/vscode-remote-release/issues/6363).
It might be possible to have reflex pass the GITHUB_TOKEN in the request if we know we're running from a codespace; we already have some conditional logic in the framework to handle that, but this would have to be plumbed fairly deep.

@Sprocketer so i had an idea and put up a draft PR: https://github.com/reflex-dev/reflex/pull/3044
Essentially, if the app is running in a codespace, reflex will add a link from the connection banner to a new endpoint on the backend. If you click this link and are logged into github, it will automatically authenticate your session. After closing the tab, the app will start to work. This seems like the simplest approach (try it in a codespace 😉).
Let me know if you have any other ideas for a way to do it with even less friction.

@masenf looks cool! How do I build/use this from the files in the draft pr - never done that before

You just go to the PR, click the Code button, then Codespaces tab, then create a codespace from the PR. It takes a while to boot up, let it run the setup script, then when you poetry run reflex ... you will use the version from the PR. Makes testing PRs simple when away from your normal dev environment.
I also attached a video so you can see the flow (some stuff sped up/cut out for brevity)
https://github.com/reflex-dev/reflex/assets/1524005/4b1bd4ce-0f0a-4f73-abf2-e3e42a526c18

@masenf Super, thanks for that 🎉 - Just an idea: maybe Reflex somehow automates a request to the authentication URL, or redirects to it and then back to the original site automatically? (both options streamlit developer experience)
I haven't worked with GitHub APIs or (such) tooling before so I'm not sure how viable either option is

Sounds good - popup blockers can always be disabled for certain conditions so I wouldn't make that the top critera for which implementation to choose - whichever you think works best though

So i tried to open the page with window.open or by creating a link with target=_blank and clicking it: both of these are blocked by popup blocker.
Then I tried loading the backend in an iframe, but this doesn't authenticate the session for the outer page.
Then I tried creating a link and clicking it without the target and that works, but then i can't easily get back to the app 😔

thanks for the feedback, i seem to have a "no touch" mechanism for handling this now. will require some clean up and testing, not sure when it can actually merge

thanks for the feedback, i seem to have a "no touch" mechanism for handling this now. will require some clean up and testing, not sure when it can actually merge

Nice! I'll look forward to checking it out - I'll be notified when you update the draft PR


[BUG] context don't play well with nestedKey

[ ] I've read the docs of nestjs-pino
[ ] I've read the docs of pino
[ ] I couldn't find the same open issue of nestjs-pino
What is the current behavior?
When config pino with nestedKey, the context is logged into field configured with nestedKey(e.g. payload).
{...,"payload":{"context":"MyService","actual":"payload"}}

What is the expected behavior?
We always want to log context in the root of log structure. This can help avoid name conflict.
{...,"payload":{"actual":"payload"},"context":"MyService"}

Please provide minimal example repo. Without it this issue will be closed
LoggerModule.forRoot({
  pinoHttp: {
    nestedKey: 'payload',
  },
});

Please mention other relevant information such as Node.js version and Operating System.
Consider use child instead of creating context mixin in origin payload.

This is not a bug at all. If every custom field (not added by pino automatically) is moving to the nested key, why should context be excluded from that? That's just nestjs specific, for pino it's pretty the same as any other custom field.
If you want to make an exception to the rule you can open a feature request in pino.
Closing


101 | Symmetric Tree | CPP

Symmetric tree
Add a code
Type of Issue -

[x] Adding New Code

Programming Language

[x] C++

Self Check

Ask for issue assignment and wait to get assigned to it before making Pull Request.
Add your file in the proper folder
Clean Code and Documentation for better readability
Add Title and Description of the program in the file

:star2: Star it :fork_and_knife:Fork it :handshake: Contribute to it!
Discord server ✉ - https://discord.gg/CXksGdn
Happy Coding,

Could you please assign me for this task ?

Please assign this issue to me..

Why unassigned


IMPL for the GSF Website

I took a stab at trying to figure out how to write an IMPL for our own website which is open source and here: https://github.com/Green-Software-Foundation/greensoftware.foundation and it's turned out to be a very good exercise to help define the spec and IMPL format.
# Calculating Carbon per User for the GSF website.
name: Green Software Foundation Website
variables: # These are only for use in this YAML, to make it easier to update complex IMPLs witha few variables.
  users-last-month: 40000
  builds-last-month: 67
  data-last-month: 34.2 # gb
components:
  building:
    netlify:
      model: sci # a generic sci value multiplier
      config: 2.4 # 2.4 g per "build" - maybe we calculated seperately.
      measurement: $builds-last-month # 67 "build"
      format:
        div: $users-last-month
    gh-pages:
      model: sci # a generic sci value multiplier
      config: 0.4 # 2.4 g per "build" - maybe we calculated seperately.
      measurement: $builds-last-month # 67 "build"
      format:
        div: $users-last-month
  serving:
    netlify:
      model: netlify-serving # a specific model which returns carbon for netlify serving websites
      config:
        output: user # we are telling the model we want results by user
        page-views-per-user: 2.1
      measurement:
        users: $users-last-month
      format: ~ # already returning data by user
  traffic:
    model: co2.js
    config:
      kind: 1byte # https://developers.thegreenwebfoundation.org/co2js/models/
      green-hosting: true
    measurement:
      gb: $data-last-month
    format:
      div: $users-last-month
  browser:
    model: sci
    config: 1.2
    measurement: $users-last-month
    format:
      div: $users-last-month

1. Some IMPL variables are useful.
I was reusing a lot of the same numbers all over the IMPL, so I added a variables section at the top and a language of $xxx to expand out the variables in the impl.
2. We need to think about nesting and grouping of sub-nodes some more
It's not going to be a simple 1 -* M mapping for every node since you're going to want to group certain related components together.
For instance for our website, building the website has two distinct components (phases), netlify and gh-pages and we use netlify again later on to serve our website.
I chose to create some empty parent nodes building and serving which serve no purpose other than name-spacing components and adding some structure.
components:
  building:
    netlify: ~
    gh-pages: ~
  serving:
    netlify: ~
  transporting: ~
  browser: ~

Alternative was perhaps a flatter structure which has the advantage of being simpler but we lose some of the programmatic structural understanding of how things are formed.
components:
  building-netlify: ~
  building-gh-pages: ~
  serving-netlify: ~
  transporting: ~
  browser: ~

3. The aim was Carbon per User, how to define the Functional Unit/R.
Some nodes in the impact graph were returning a total value, not per user, so I added a node called format
    format:
      div: $users-last-month

The above might signal that we need to divide the output of this node by $users-last-month to get the value with the correct denominator (R)
4. I'll make a separate PR but after reflecting on how the boavista and other APIs work they have a language I think we should adopt.
model - the model you are using to calculate emissions
config - any config for the above model
measurement- a single measure (telemetry is too raw and low level, when I mention it people think of the millisecond raw stream of telemetry you get from machines, we're talking about something already aggregated into time buckets)
instead of
model
params
telemetry
I still think we need to support telemetry since that's how we get granular (and granular is where the good information lies about improvements) but I think usage is the sum/aggregate of telemetry.
So telemetry might be a list of every single page view on our website, with the date/time and duration of the visit, but this gets aggregated into usage which in this case might just be a total number of user or total number of page views in a given span of time.
Lots to discuss with telemetry, lots of tough use cases and edge cases, but the more aggregate "usage" works as a high level analysis.
5. Introduced generic SCI model
SCI calcs can be composed of other SCI calcs.
    netlify:
      model: sci # a generic sci value multiplier
      config: 2.4 # 2.4 g per "build" - maybe we calculated seperately.
      usage: $builds-last-month # 67 "build"
      format:
        div: $users-last-month

For the above I needed a way to measure the "building" of our website on the netlify platform. Its a process node build which builds all our HTML files etc...
I imagine one way we would calculate that is to measure it once and then use that as  constant for all the others, e.g. I hypothesized that we calculated it as 2.4 g per build probably using another separate IMPL file which measured just the cost of running node build over the last month, looked at utilization, machine types etc...
I've always imagined a future where we have a large catalog of SCI scores for a variety of products and you just pick them to slot into your SCI calc.

As discussed on project call.

There is a time component to every impact calculation.
Every component will measure at a certain frequency, monthly, daily, hourly, minutes.
All measurements/telemetry will have to be normalized/extrapolated/interpolated to match that global frequency for things to be summed up properly.

e.g. If two components might have different frequencies of measurement e.g. carbon intensity of grid is every 5 mins, CPU utilization every 5 seconds and the global frequency was set to 1 hour. Then all the measurements would have to be normalized into 1hr buckets before being passed into the models.
Another approach would be we define the global freq, and you MUST provide data at that frequency, if not the calculation fails.
Interval.
Can query measurements for different interval.
SCI can be calculated for a duration (and update the next duration).
Sometimes we may just want to calculate multiple SCI scores over time, e.g. every 5 mins. In that scenario the freq. will be 5 mins, and the telemetry put in will be again in 5 min increments.

@jmcook1186 can you take a look at reformatting this IMPL to one that meets the latest spec and add it to the impls folder as per your other issue. This will defo be a work in progress but let's have it added to the collection.

Work with @osamajandali our web dev to understand the build/deploy process for our website (I guessed most of the above!).
Make the IMPL reflect the reality of our build/deploy process.
Source real data for say July this year (i.e. the number of builds etc.... ask Osama or you can find details in the actions tab in the website repo) also reach out to @zanete to get real traffic data regarding our website traffic.
Try to get the data as daily observations, so one value per day for a month.
Make this use observations (i toyed with the word measurements in this yaml but we've landed on observations)
Remove the nodes that divide things (that will be handled by the new pipeline process)

Hi @osamajandali and @zanete - there's a draft impl for the GSF website in PR #80 but I'd love to get your help to make it more realistic.
@osamajandali can you help by explaining how the GSF website is really built and hosted? Then I can ask @zanete for appropriate metrics.
Cheers!

Hello @jmcook1186, I am glad to assist you with any development-related queries.
The GSF website is constructed using the GatsbyJS framework and is deployed on Netlify. We utilize GitHub, which automatically builds the website on Netlify during deployment.
To better assist you, I would appreciate it if you could share more details on what specifically you are looking for. While I have provided you with a brief overview of the essential aspects, I understand that there may be additional requirements that you require further assistance with.

@jmcook1186 can we reuse this issue to restart working on manifest for the GSF website or has too much changed and we need to start fresh? 🙏

Hi @zanete - yes we can use this ticket.
A good first go at this is to use CO2js in SWD mode to estimate the website emissions from data transfer measurements.
We can do this using our CO2js IF plugin.
So what I want to do is to ask @manushak to prepare a manifest that invokes the CO2js plugin and exposes all the available config for the SWD model. This will help me by enumerating all the data points I need to collect. We can divide and conquer by having @manushak prepare the manifest while I'm sourcing the right data to feed the model.

This is now just waiting for fixes to aggregation feature, then it will be done.

@manushak to look at the GSF website manifest and the existing if docs website and bring it to the level of the GSF website.


Error on tensor proto size

Hi,
I'm getting an error when trying to run alphafold on a particular sequence, that tensor proto cannot exceed 2GB (see attached file with the error log). I have successfully run alphafold on many other sequences without any problem, but for this particular sequence I am getting this tensor proto error no matter what I try (e.g. running with full database vs reduced one, different gpu nodes to not hit out of memory).
Any help on what I can try would be much appreciated!
Thanks a lot!
AF2_slurm_56393_snoke5_alphafold_56393_4294967294.txt

Same issue took place in my case, when the input sequence is very long (>1500).

Same issue took place in my case, when the input sequence is very long (>1500).

The strange thing for me though is that I have successfully run sequences of >2000 residues without getting any errors or problems, but this single input sequence always gives an error on tensor proto size.

Hi, this is most likely because the MSA is too big. There is a suggested workaround (reducing the size of the MSA) in: https://github.com/deepmind/alphafold/issues/71

Addressed in https://github.com/deepmind/alphafold/commit/0be2b30b98f0da7aecb973bde04758fae67eb913.


tests/x86: Clarify DMAR output

IOAPIC scope was missing, formatting was messy ...

@tbursztyka please rebase


Make GraphiQL.Menu keyboard accessible

For a11y.

#336

Maybe I'm missing/forgetting something, but why was this needed?

Oh, well since we went ahead and made the menus and selects stay open on click, @wincent and I were thinking that this would be something nice to have that takes up a trivial amount of time to do.

Maybe I'm missing/forgetting something, but why was this needed?

Keeping things accessible is a best practice. It's pretty common to fail to do so when replacing native browser elements with hand-rolled custom versions.

Ahhhhh, I misunderstood the word accessible. Makes sense!

@wincent we recently had an issue and a first time contrib PR that should have addressed this and other accessibility issues, should have marked this as a duplicate. want to confirm?

I'm going to close this as "we believe it's fixed" but if someone wants to chime in that it isn't we should definitely re-open.
Specifically ToolbarButton was made accessible in this PR: https://github.com/graphql/graphiql/pull/967/files#diff-07f119989c064b0e2a2b0883e992317d


update metric format and names for background evictor stats and slab …

Updating metric format
"text (metric name): value (number)"

@igchor I made these changes to keep the metric format consistent. let me know if this looks ok

Already integrated, @raema you can verify if the output is correct


install rasa in macOS M1

Rasa Open Source version
2.8
Rasa SDK version
No response
Rasa X version
No response
Python version
3.8
What operating system are you using?
OSX
What happened?
I can not install rasa in my computer.
Command / Request
pip install rasa

Relevant log output
No response

Thanks for raising this issue, @erohmensing will get back to you about it soon✨
Please also check out the docs and the forum in case your issue was raised there too 🤗

Any updates on this?

Yes, see this post by @koaning


Add option to combine multiple windows into one

It's already doable via drag & drop. But it's not obvious and needs mouse/trackpad, adding an or multiple options to:

Merge selected tabs into a new window
Merge selected tabs into an existing window
Merge all tabs into a new window
Merge all tabs into an existing window

It's useful to add fewer option(s) and achieve all of above.
And consider to add an option to either revert the combination or confirmation before merge all tabs.

The shortcut is Shift+n and button:

The shortcut is Shift+n and button:


Fix: Update goreleaser to fix release failure

Update goreleaser to 1.21.2 and update the action to v5.
Changes in the .goreleaser.yml file for the same.
Update versions in js and java clients

@punit-kulal not just these but tags must be updated at some other places as well. Check an older commit. https://github.com/raystack/stencil/commit/b745f099da6bd75e06a326f0f97baf25902dda25

@ravisuhag Updated the docs to point to newer version


add rows and autosize property

Please makes sure these boxes are checked before submitting your PR, thank you!

[ ] Make sure you follow Element's Contributing Guide.
[ ] Rebase before creating a PR to keep commit history clear.
[ ] Add some descriptions and refer relative issues for you PR.

#214


Switch from user_id to id in get_user method

Summary of Changes
A follow up to my previous PR, which adds a BaseAPI with some generic logic. That logic expects "id" as an argument for the "get" method. This PR replaces user_id with id.
Tests
I updated the user API test to use assert_called_once_with so that this bug can be caught in the future via automated testing.
CheckList
Make sure you have checked all steps below to ensure a timely review.

[x] PR title addresses the issue accurately and concisely. Example: "Updates the version of Flask to v1.0.2"

In case you are adding a dependency, check if the license complies with the ASF 3rd Party License Policy.

[x] PR includes a summary of changes.
[x] PR adds unit tests, updates existing unit tests, OR documents why no test additions or modifications are needed.
[x] In case of new functionality, my PR adds documentation that describes how to use it.

All the public functions and the classes in the PR contain docstrings that explain what it does

[x] PR passes make test

Codecov Report

Merging #110 into master will not change coverage.
The diff coverage is 100%.

@@           Coverage Diff           @@
##           master     #110   +/-   ##
=======================================
  Coverage   70.45%   70.45%
=======================================
  Files          21       21
  Lines        1029     1029
  Branches      106      106
=======================================
  Hits          725      725
  Misses        277      277
  Partials       27       27

Impacted Files
Coverage Δ

metadata_service/proxy/atlas_proxy.py
84.69% <100%> (ø)
:arrow_up:

metadata_service/proxy/gremlin_proxy.py
44.77% <100%> (ø)
:arrow_up:

metadata_service/proxy/base_proxy.py
67.27% <100%> (ø)
:arrow_up:

metadata_service/proxy/neo4j_proxy.py
73.52% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

Adding some notes here (cc @feng-tao):

the front end expects "user_id"but passes it through as part of the route like

 url = '{0}{1}/{2}'.format(app.config['METADATASERVICE_BASE'], USER_ENDPOINT, user_id)

on the metadata side, the route is named like

api.add_resource(UserDetailAPI, '/user', '/user/<path:id>')

There are additional user endpoints like Follow/Own/Read which expect user_id. I would argue that all of these should move towards "id" so that we can switch to using the BaseAPI


能否去掉bun

Verification

[ ] I have retried my command with --force.
[ ] I ran brew update-reset && brew update and retried my command.
[ ] I ran brew doctor, fixed as many issues as possible and retried my command.

Description of issue
bun有官方的的tap: oven-sh/bun/bun
两个都安装的话，会有冲突
Command that failed
brew install bun
Output of command with --verbose --debug
Error: Formulae found in multiple taps:
       * oven-sh/bun/bun
       * brewforge/extras/bun

### Output of `brew doctor` and `brew config`

```shell
~

Output of brew tap
~

可以，稍等

搞定


Gradient direction support on line chart

I needed a way to show low and high values on the chart so I modified LineChartBarData implementation to support gradientFrom and gradientTo parameters based on similar logic from BarAreaData implementation.
With those changes making charts like the one in attachment is possible.

Hi @kamilpowalowski.
Good implementation, I've enjoyed it.
Thanks!


Breaks when display: none;

I'm making a webpage where I'd like to remove full sections with media content when using a smaller screen size. Currently, I'm using media queries, like this:
@media only screen and (max-width: 647px) {
    .section-music, .section-photos {
        display: none;
 }

And this is my scrollify setup code:
$(function() {
        $.scrollify({
    		section : ".hero",
    		interstitialSection : ".hero, .end",
    		overflow : false,
    		before: function(i) {
    		    if(i === 2) {
    		        $(".video-container").addClass("animated fadeIn");
    		    } if(i !== 2) {
    		        $(".video-container").removeClass("animated fadeIn");
    		    }
    		    if(i === 3) {
    		        $(".right-col").addClass("animated fadeInRightBig");
    		        $(".left-col").addClass("animated fadeInLeftBig");
    		    } if(i !== 3) {
    		        $(".right-col").removeClass("animated fadeInRightBig");
    		        $(".left-col").removeClass("animated fadeInLeftBig");
    		    }
    		    if(i === 5) {
    		        $(".preview").addClass("animated fadeInDownBig");
    		    } if(i !== 5) {
    		        $(".preview").removeClass("animated fadeInDownBig");
    		    }
    		}
    	});

I'm open to other ways of removing section, but currently, scrollify just completely breaks when it hits 647px wide. It will either skip sections or will go to the end of the page. It's working great otherwise. Please let me know if I need to attach more code for troubleshooting.
Thanks!!

Scrollify will still think those sections are there. You'll need to call the update method when the screen goes below that width.

Thanks for that! I got it working, but changed it around a bit...Instead of media queries, I used this:
// CHECKS WINDOW SIZE AND ADDS/REMOVES MUSIC & PHOTOS
    var $window = $(window);
    var $pane = $('#pane1');

    function checkWidth() {
        var windowsize = $window.width();
        if (windowsize < 647) {
            //if the window is greater than 647px wide then turn on jScrollPane..
            $("section").remove(".section-music, .section-photos");
            $.scrollify.update();
        }
        if (windowsize >= 647) {
            //if the window is greater than 647px wide then turn on jScrollPane..
            $("section").add(".section-music, .section-photos");
            $.scrollify.update();
        }
    }

    // Execute on load
    checkWidth();
    // Bind event listener
    $(window).resize(checkWidth);


Arguments To Query Type Not Exposed/Compiled?

Hi there, think the library fits a real good niche. The typeorm fit in particular is real nice
I've hit a wall however when trying to accepts arguments to a query field. The schema just doesn't seem to include the name argument for the query field.
I have experimented at length with adding @Arg() etc also
Here's a reproduction repo - https://github.com/elmpp/typegql-params
This screenshot shows the graphiql request failing - https://github.com/elmpp/typegql-params/blob/master/ScreenShot.png

https://prismake.github.io/typegql/getting-started/setup.html
Make sure to add "emitDecoratorMetadata": true, to your tsconfig.
Let me know if it helps

That's done it. Cheers very much


net: lwm2m: obj inst processing per formatter

It depends from a content formatter is there need to put constructs
with a path level deeper than object instance. In other words with
resource- or resource-instance-level.
Signed-off-by: Veijo Pesonen<EMAIL_ADDRESS>

@SeppoTakalo Please review.


Implement boosting and custom_boost_factor

Would be great if we could implement boosting and custom_boost_factor. As I see it there's no way to do it with the DSL today?
Boosting
Custom boost factor
I guess it would go in Tire::Search::Query?

Hi, I think this is too special to pollute the main DSL, I'd suggest using Hash queries or doing a contrib for that.

Ok, just to clarify, if I'm using hash queries I need to use it for everything, right? There's no way to mix in a hash query in an existing DSL query?

Correct. Though you can build your query with DSL, convert it to Hash with to_hash, update it how you wish and then fire it against ES.

@yeggeps If you manage to solve the issue, please post solution here and close it, thanks.

Yes, ofcourse.
Wouldn't it be sensible to have a method in the DSL for hash queries? So we could easily mix them with our existing queries?


Don't enforce rule 1 as much.

From Aproxia :
Don't put such emphasis on rule 1, not even allowing people to say bruh is rather extreme in my opinion. I get it with copypastas and such, but saying a word that used to be a big meme should not get you a warning, as it's a part of many people's vocabulary and it's not offensive.

From Faith | Am Girl! :
This is how this server has always worked, this will not change.


Count People at two entrance

Hello @Andrea-Fox ,
I would like to use your code to count people on a staircase. This would require using two sensors on an ESP32, as people can leave the stairs at the beginning and end. The use of two sensors is possible after a research with i2c.
Can the VL53L0X also be used instead of the VL53L1X?
Best regards TheMBeat

Hi, @TheMBeat,
unfortunately I don't think that the code would work using the VL53L0X sensor, as it would require to use its own library.  Moreover, the idea behind the algorithm exploits the fact that there exist multiple zones (the region of interest) and I think that it is impossible to obtain those using a VL53L0X sensor.
Best regards,
Andrea Fox

Hello @Andrea-Fox ,
Do the two sensors differ not only in the distance that can be measured? Therefore I thought it was also possible with the VL53L0X.
Best regards.
TheMBeat

No there are many differences between those two sensors, ROI (Region of interest) is one of them. You can read more here

Ahh, okay.
If I have two VL53L1X, would it still be possible to count people at two doors?

Yes, but I am pretty sure that you need one separate esp for each sensor. The sensors/code  doesnt care where you place them as they only count persons leaving or entering under/beside them. In your case the stairs would be the same as any other room and the logic will have to be executed by Home Assistant (or any other home automation system)

As @burton666 said, you can just place one sensor at the beginning of the stairs and one at the end and then treat the stairs as a room. Then, both sensor will register the people going in and out of the room (the stairs) and through Home Assistant you can manage the number of people in the room (and the lights in the stairs).

Hello XXX,
thanks for the quick answers and your help. I will probably order the sensors and try a little bit.
Have nice days and stay healthy.


After 0.59.0 update notion and discord dont resize anymore with fancyzones Windows + arrow keys

Microsoft PowerToys version
0.59.0
Running as admin

[X] Yes

Area(s) with issue?
FancyZones
Steps to reproduce
Windows + Arrow Keys at Notion and Discord softwares dont works ... other softwares like browsers ... vscode ... terminal and stuff works normally
✔ Expected Behavior
resize to position that I configured on Fancy Zones
❌ Actual Behavior
Do nothing ... after update the problem starts
Other Software
Windows 11
PowerToys 0.59

Also, Microsoft Teams and a second profile of Microsoft Edge does not work after update.

Having the same problem with Teams and Outlook - both are not working after the update. Other applications are working fine.

do you have "Show windows from this app on all desktops" enabled?  if so it is https://github.com/microsoft/PowerToys/issues/18657 and we will be doing a hot fix release in the next few days

/needinfo

Yes, this option ("Show windows from this app on all desktops") is enabled for the applications which are not working. If I disable this option, it's working as expected.

Also getting this in application that are shown on all desktops, including Teams and Outlook PWA via Chrome, and ToDoIst PWA via Chrome.


WIP: Replace M_PI with ITK pi constants

Depends on PR 6 and closes Issue 7.

@tbirdso could this please be rebased on master?


Updated go-gh package

What are you trying to accomplish?
Updated go-gh package due to addition of  support for secure token storage in go-gh which might break the old code.
Fixes this - https://github.com/actions/gh-actions-cache/issues/59
What approach did you choose and why?

Anything you want to highlight for special attention from reviewers?

Is this PR still being considered? The extension is currently unusable on the latest gh CLI.

It says:

But it appears that there is an approving review. Is there a reason this PR isn't being merged automatically?

Pweease can we get this merged

Hi @VivaLaPanda @myk002 @realberliner75 @msfjarvis @KrazyKrazy8 I have created a fork for the project and released a new version 1.0.5 with the above PR. If the current PR is a blocker feel free to use https://github.com/t-dedah/gh-actions-cache.

👋 Hi, sorry for the delay. My team is taking a look at this now.

Looks like #74 already did this.
Can you release a new version of the extension? It remains unusable on the last gh cli.


Something Broke Today with Jupyter-DataProc

Was using jgscm on DataProc https://blog.sourced.tech/post/dataproc_jupyter/ for past week.
Sometime today , jupyter started prompting for authentication. same thing after redeploy.
Also, logs are not appearing.

Same problem on our side, I am figuring this out.

A fast workaround is the explicit setting of the password in jupyter config.

All right, say big thanks for breaking everything to https://github.com/jupyter/notebook/issues/1944

Fixed in either gist or GCS. The solution was to add
c.NotebookApp.token = ""

to the Jupyter config.


Include exception class in failure message from ArtifactStore

Sometime the exception message is null which leads to log message like 'activations' internal error, failure: 'null'
[2018-10-11T06:46:11.034Z] [ERROR] [#tid_bASVetECuqu481V6WTm0f35UhQzqV2Zd] [StoreUtils] [QUERY] 'activations' internal error, failure: 'null' [marker:database_queryView_error:120:120]

To get more context of the actual exception it would be useful to also include the exception class. Post this the log would be like
[2018-10-12T09:00:39.758Z] [ERROR] [#tid_sid_testing] [StoreUtils] Test null [RuntimeException] [marker:database_getDocumentAttachment_error:739:29]

Related issue and scope

[ ] I opened an issue to propose and discuss this change (#????)

My changes affect the following components

[ ] API
[ ] Controller
[ ] Message Bus (e.g., Kafka)
[ ] Loadbalancer
[ ] Invoker
[ ] Intrinsic actions (e.g., sequences, conductors)
[ ] Data stores (e.g., CouchDB)
[ ] Tests
[ ] Deployment
[ ] CLI
[ ] General tooling
[ ] Documentation

Types of changes

[ ] Bug fix (generally a non-breaking change which closes an issue).
[x] Enhancement or new feature (adds new functionality).
[ ] Breaking change (a bug fix or enhancement which changes existing behavior).

Checklist:

[x] I signed an Apache CLA.
[x] I reviewed the style guides and followed the recommendations (Travis CI will check :).
[x] I added tests to cover my changes.
[ ] My changes require further changes to the documentation.
[ ] I updated the documentation where necessary.

Codecov Report

Merging #4065 into master will decrease coverage by 4.91%.
The diff coverage is n/a.

@@            Coverage Diff            @@
##           master   #4065      +/-   ##
=========================================
- Coverage   86.01%   81.1%   -4.92%
=========================================
  Files         147     147
  Lines        7180    7180
  Branches      445     445
=========================================
- Hits         6176    5823     -353
- Misses       1004    1357     +353

Impacted Files
Coverage Δ

...rc/main/scala/whisk/core/database/StoreUtils.scala
100% <ø> (ø)
:arrow_up:

...core/database/cosmosdb/RxObservableImplicits.scala
0% <0%> (-100%)
:arrow_down:

...core/database/cosmosdb/CosmosDBArtifactStore.scala
0% <0%> (-95.54%)
:arrow_down:

...sk/core/database/cosmosdb/CosmosDBViewMapper.scala
0% <0%> (-92.6%)
:arrow_down:

...whisk/core/database/cosmosdb/CosmosDBSupport.scala
0% <0%> (-83.34%)
:arrow_down:

...abase/cosmosdb/CosmosDBArtifactStoreProvider.scala
0% <0%> (-58.83%)
:arrow_down:

...la/whisk/core/database/cosmosdb/CosmosDBUtil.scala
92% <0%> (-4%)
:arrow_down:

...a/whisk/core/loadBalancer/InvokerSupervision.scala
95.83% <0%> (-0.7%)
:arrow_down:

...rc/main/scala/whisk/common/ForcibleSemaphore.scala
92.3% <0%> (+3.84%)
:arrow_up:

Continue to review full report at Codecov.

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


Dump on exit

Usage related changes

Quick fix for double execution of dump function.

(For unknown reasons dump function was executed twice. The second dump was performed with a clean instance of starknet which means that this functionality didn't work at all. Still investigating the issue.)
Development related changes

test_dumping_on_exit updated to cover scenario with call after load

Checklist:

[ ] Applied formatting - ./scripts/format.sh
[ ] No linter errors - ./scripts/lint.sh
[ ] Performed code self-review
[ ] Rebased to the last commit of the target branch (or merged it into my branch)
[ ] Documented the changes
[ ] Linked the issues which this PR resolves
[ ] Updated the tests
[ ] All tests are passing

This probably is related to introduction of GunicornServer and workers:
    asyncio.run(state.starknet_wrapper.initialize())

    try:
        print(f" * Listening on http://{args.host}:{args.port}/ (Press CTRL+C to quit)")
        pid = os.getpid()
        GunicornServer(app, args).run()
    except KeyboardInterrupt:
        pass
    finally:
        if args.dump_on == DumpOn.EXIT and os.getpid() != pid:
            state.dumper.dump()
            sys.exit(0)

@Solpatium do you have any idea why we have 2 processes running after starting devnet?

Probably due to this line each process has its own "global" state
https://github.com/Shard-Labs/starknet-devnet/blob/40d5b6f75fd80e5adea989e5f45ebb76c5c25cde/starknet_devnet/state.py#L57

Should we use worker_exit in gunicorn and always use 1 worker?

Having more than 1 worker doesn't make sense at the moment as there is no way of sharing the state between them, right?

Having more than 1 worker doesn't make sense at the moment as there is no way of sharing the state between them, right?

Yes. If you don't have objections, I'll merge the PR as it currently is.


Downloading Transactions

Hi,
Nice tool.
It would be awesome to download historic transactions.  How did you discover the API urls?
Kind regards
Christian

Hi Christian, and thank you.
Downloading transactions is definitely doable. I just didn't need it.
I used Charles proxy and my smartphone to discover Revolut API.
I'll have a look at transactions. Any specific requirements ?
Le lun. 20 août 2018 16:41, Christian B<EMAIL_ADDRESS>a
écrit :

Hi,
Nice tool.
It would be awesome to download historic transactions. How did you
discover the API urls?
Kind regards
Christian
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/tducret/revolut-python/issues/2, or mute the thread
https://github.com/notifications/unsubscribe-auth/ACm7pmhsv97EWrNXWaCIgkNQHFBsjt-kks5uSsqdgaJpZM4WEIw_
.

@tducret, how is it going with plans on pulling the transactions? I love the idea and would highly appreciate that functionality.
I'd be honored to help you with that, if you wouldn't mind?

I didn't dig into it yet. Do you think about a specific implementation?
Is it interesting to add this feature in the CLI tool for example?

@tducret, I was exploring it yesterday with Charles and was able to successfully pull down the transaction history for a specific time period, exiting! I think i ll add it to CLI tool with a parameter to specify from(how far in a past) you want to fetch data from. And then just return a json data to the user. What do you think about it?

Yep! Sounds good to me. Feel free to submit a PR ;)

Hi @leikoilja ,
if you can provide requests needed to get trxs from revolut, I'd be happy to implement it. Unfortunately charles-proxu does not help me, as I have android 8 and it does not respect user certificates by default.
Thanks

@leikoilja thanks for the info.
Is there something in headers as well?
I tried this:
> ret = self.client.doGet(_URL_GET_ACCOUNTS)
> data = ret.json()
> wallet_id = data['id']

> TRX_URL = "https://api.revolut.com/user/current/transactions?from=1571335685&walletId={}".format(wallet_id)

> ret = self.client.doGet(TRX_URL)

ConnectionError: Status code 500 for url https://api.revolut.com/user/current/transactions?from=1571335685&walletId=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
{"message":"Something went wrong"}

I also tried the pocket ID as wallet_id, but that is probably not correct as I got :
403: You have no permission to perform this operation

@zlymeda, here you go, mate:
import json
import click
from revolut import Revolut

_CLI_DEVICE_ID = 'revolut_cli'
_URL_GET_TRANSACTIONS = 'https://api.revolut.com/user/current/transactions'

@click.command()
@click.option(
    '--token', '-t',
    envvar="REVOLUT_TOKEN",
    type=str,
    help='your Revolut token (or set the env var REVOLUT_TOKEN)',
)
def main(token):
    if token is None:
        print("You don't seem to have a Revolut token")
        sys.exit()

    rev = Revolut(device_id=_CLI_DEVICE_ID, token=token)
    wallet_id = json.loads(
        rev.client._get(
            'https://api.revolut.com/user/current/wallet'
        ).text
    ).get('id')
    transactions = json.loads(
        rev.client._get(
            _URL_GET_TRANSACTIONS + '?from=1571335685&walletId={}'.format(
                wallet_id
            )
        ).text
    )
    print(transactions)

if __name__ == "__main__":
    main()

So you can run it as:
python3 SCRIPT-ABOVE.py --token=XXX
That's just a quick sketch, more as a concept proof. Feel free to integrate it with revolut-python and open a nice PR :+1:
Ping me please, if you will. Just want to stay in a loop :smile:


fix(RHTAPWATCH-522): container builds flakiness

Description
The Splunk container had a few issues that caused flakiness:

The second stage of the dockerfile did not always finished copying
the DB (digested logs) before finishing the build process, leading
to failures.
podman kube play also seems to cause instability when building
the image.

This change solve those issues by:

Fix a bug in the log indexing verification stage, where it exited the
verification on a negative response instead of a positive one.
Change the test framework so instead of relaying on podman kube play
for both building and running the container, the framework will build
using podman build, and run the container with podman kube play
using the built image.

Issue ticket number and link
RHTAPWATCH-522
Type of change

[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?

Manually building the container using podman play kube
Manually building the container using podman build for the build process, and podman play kube for running the container.
Running the container using the automated splunk tests

Checklist:

[x] I have performed a self-review of my code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] I have added meaningful description with JIRA/GitHub issue key (if applicable)
[ ] I have updated labels (if needed)

/retest

/retest


Create a Helm Chart for WSO2 Open Banking Solution Deployment Pattern 1 for Berlin Spec

Description:
Currently, Helm Charts are available only for UK spec for pattern 1 of WSO2 OB solution. Helm Chart for WSO2 Open Banking Solution Deployment Pattern 1 for Berlin Spec will have to be created as well.

Updating the product version for clarity.


Feature Request : Sync without having to close/reopen

I'd like the viewer panel to display my latest .md changes. The only way I can see to do this is to close and reopen the panel.
That's two clicks on a tiny, tiny button which require me to take my hands off the keyboard.
If we can't have the markdown in sync with individual keystrokes (perhaps some milliseconds after the last keystroke), could we instead have some kind of UI for 'sync'?
Perhaps a button?
Perhaps a menu item with a shortcut?
Perhaps just sync the view when you save?
It should happen quickly, easily, and (preferably) without taking the hands off the keyboard because the use case of markdown is people using a keyboard who are too busy to faff around with closing tags, so they're certainly too busy to take their hands off the keyboard.

For now, before the solution appears, you may want to assign a hotkey, such as [Ctrl+Shift+M] in:
Macro \ Modify Shortcut \ Plugin Commands
Then you can press [Ctrl+Shift+M+M] (twice M).

In N++ v.7.8 you can press [Ctrl+R].

By default the panel updates itself after a short delay to reflect all changes in the .md-file.
See how it works for me.

This is not working for you?

I have the same issue: the MD preview panel is not updating as I type & update the text.

I'm suffering from this bug, (using x64) and if it is because what I think it is, it will not affect x32. Please see below.
This is probably related to the issue is filed for MarkDownViewer++ but if you read the thread you can see it also relates to NppMarkdownPanel:
https://github.com/nea/MarkdownViewerPlusPlus/issues/107
And the real, underlying issue seems to be because of this:
https://community.notepad-plus-plus.org/topic/17755/notepad-7-7-breaking-change-of-scnotification-definition-in-x64-build

This is still an issue. I am using 7.9.2 x64 and Markdown Panel plugin.
View is not refreshed.

This is still an issue. I am using 7.9.2 x64 and Markdown Panel plugin.
View is not refreshed.

fixed in version 0.6.1


Implement a .Design package and some testing for MSBuild

This is the first step in adding support for Razor compilation at build
time. Additional steps will complete this by adding tag helper
discovery, code generation and finally a call to CsC.
I want to get this in now to get the package into the build system and
to lay down the general infrastructure for testing.

The strategy for testing here is to use checked in projects that have
everything Razor needs to compile code. We already have shims for the
APIs Razor uses by default in this repo and I'm using them in the
project.
The test infrastructure creates a temporary directory, copies the
project, and fixes up a few small things to cooperate with outputs we've
already built so that the test can use the new versions of Razor bits
built from this repo.
We can then call various MSBuild targets and verify the files on disk. I
envision tests that verify incrementalism as well as the basic E2E.
We will test the E2E in general in other places, since it's part of the
new default experience. This repo will test things at a higher level of
detail, but in slightly artifical scenarios.

Updated

Not a fan of re-writing the moved csproj. Would rather dynamically create a props file to provide proper data; buttttt that's not a blocker.

Ah now I get what you're saying. I'll do that in the future when/if this becomes more complex. Right now this is just a string.replace.

It looks like Travis and AppVeyor are queued. I'm going to wait a bit and see if those pass. I want to avoid works on my machine issues.


Optimize sdpa attention mask generation

Ticket
Link to Github Issue
Problem description
Attention mask generation is bottlenecked by filling tiles partially with -INFs.
What's changed
Describe the approach used to solve the problem.
Summarize the changes made and its impact.
Checklist

[ ] Post commit CI passes
[ ] Blackhole Post commit (if applicable)
[ ] Model regression CI testing passes (if applicable)
[ ] New/Existing tests provide coverage for changes

Looks good! Local tests pass? Are there any skipped tests in the pytest file which we could run locally to get even more confidence?

I ran post-commit tests but the sdpa tests were skipped. Running locally, seeing some test getting failed by PCC issue which I believe is due to open ND pcc issue.


configuration amazon ses

in my application I need to use email sending, it was decided to use amazon ses, but in the default settings in mail.js, inside the config folder, there is no example of how to configure amazon ses, someone could send me the configuration code snippet for amazon ses

Config is passed directly to https://www.npmjs.com/package/aws-sdk. Here is an example of SES config https://github.com/adonisjs/adonis-mail/blob/develop/test/ses.spec.js#L18

Closing since no response from the issue reporter and not actionable as well

@thetutlage Can you upload ses configuration again? The link not works

@thetutlage Can you upload ses configuration again? The link not works

you can find the configuration here
https://github.com/adonisjs/adonis-mail/blob/3.0.10/test/ses.spec.js

ses: {
	driver: 'ses',
	accessKeyId: Env.get('SES_KEY'),
	secretAccessKey: Env.get('SES_ACCESS_KEY'),
	region: Env.get('SES_REGION'),
},


Match pact js lint

This is like https://github.com/pact-foundation/pact-js-core/pull/425 and
https://github.com/pact-foundation/pact-js/pull/1027 - it simply tightens the lint settings to match pact-js and pact-js core.
Key points:

This is a Jest project, so it uses jest settings rather than mocha.

If you use this as a base for other jest projects, make sure you enable jest/expect-expect - it is only disabled because we have tests that always throw to test "this shouldn't run"

Also I tightened the tsconfig settings to match pact-js-core
Some code is now duplicated because you can't import from tests (this results in the tests being run twice). An improvement would be to have a __fixtures__ or something that the build skips.

Doing the same treatment to mocha pact is left as an exercise for the reader

Thanks @TimothyJones, this looks good, would you be able to resolve the conflicts and we can get this merged :)


Add hadockermon switch platform

Description:
This platform will expose containers that are controllable with HA Dockermon as switches.

Pull request in home-assistant.io with documentation (if applicable): home-assistant/home-assistant.io#7470
Example entry for configuration.yaml (if applicable):
switch:
  platform: hadockermon
  host: <IP_ADDRESS>

Checklist:

[x] The code change is tested and works locally.
[x] Local tests pass with tox. Your PR cannot be merged unless tests pass
[x] There is no commented out code in this PR.

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.io

If the code communicates with devices, web services, or third-party tools:

[x] New dependencies have been added to the REQUIREMENTS variable (example).
[x] New dependencies are only imported inside functions that use them (example).
[x] New or updated dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[x] New files were added to .coveragerc.

I'll close this now, I should convert it into a component.

Switches handle on/off
Sensor holds state + metrics
Component execute services.


Combined other forks features and added a bit myself

Hi,
I'm trying to make a screen recorder menu app and needed a few things. Instead of writing my own or just using one of the forks that never created a PR, I combined the best of theirs with a few changes I needed myself.
By using a custom icon renderer I can control stopping the recording with just the click on the icon. Example:
class AppDelegate: NSObject, NSApplicationDelegate, FluidMenuBarExtraDelegate {

    var menuBarExtra: FluidMenuBarExtra?
    var recording = false

    @MainActor func makeImage() -> NSImage {
        let renderer = ImageRenderer(content: RenderView(recording: recording))
        renderer.scale = 1
        return renderer.nsImage!
    }

    @MainActor func menuBarExtraShouldBecomeActive() -> Bool {
        if recording {
            recording = false
            menuBarExtra?.image = makeImage()
            return false
        }
        return true
    }

    func menuBarExtraBecomeActive() {
    }

    @MainActor func menuBarExtraWasDeactivated() {
        menuBarExtra?.image = makeImage()
    }

    func applicationDidFinishLaunching(_ notification: Notification) {
        self.menuBarExtra = FluidMenuBarExtra(title: "Test", nsImage: makeImage(), menuBarExtraDelegate: self) {
            Group {
                Button("Start Recording") {
                    self.recording = true
                    self.menuBarExtra?.closeWindow()
                }
            }
            .padding()
        }
    }
}

Hope this works for you. I kept the changes to a minimum
/Andreas

Example from above:

Standard menu from i.e. 1Password:

The default corner radius is slightly smaller and the window is 1 pixel lower than the original source code. What I still did not figure out is the default gray inner border that all the normal menus have. Maybe you know how to get that.

Thanks for your PR, @pardeike!

The default corner radius is slightly smaller and the window is 1 pixel lower than the original source code. What I still did not figure out is the default gray inner border that all the normal menus have. Maybe you know how to get that.

I spent a lot of time trying to figure this one out.  Unfortunately, it looks like the APIs used to create the correct window appearance for menus (NSMenu) is internal, so resorting to NSPanel appearance was as close as I could get it.  There's a short note about this in the caveats section of the README.

Once concern I have with these changes is that we've deviated from the goal of this library a bit. As stated in the README, the goal is for this to remain as API-compatible as possible to the first party MenuBarExtra API so that this library can easily be replaced and deprecated once the first party SwiftUI implementation improves.
Is there anything we can do to improve API compatibility?

Also, I'd prefer if we can split this PR up a bit if possible, as it's a bit of an amalgamation of different changes from different authors and it's difficult to tell what the overall changes are.

I got distracted by a lot of other things, sorry for not getting back to you. Closing this is the right move.


Fix for issue #54: compatibility with get_fields() missing on user creation

More details on issue #54
I found a get_all_field_names() method in Django 1.6.5. According to the official documentation, the get_all_field_names() as been removed in Django 1.6.9 in favor of get_fields() but if you want to keep a retro-compatibility, this fix is interesting :)

Thanks for your interest and the PR, @ajira86. Unfortunately, Django 1.6 is very out-of-date, and we are not supporting it in this package anymore. However, you can check out release v0.6 of this package - it should still work on django 1.6.


double-beep: Watch aborgela.com

double-beep requests the watch of the watch_keyword aborgela\.com. See the MS search here and the Stack Exchange search here.

aborgela\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Makyen in Charcoal HQ


flutter wearos keyboard   Wrong position

flutter wearos keyboard   Wrong position
At the top, not at the bottom
Exactly the same as the problem, I don't get a solution from it. Is the problem solved
https://github.com/flutter/flutter/issues/24001

my code

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      child: Scaffold(
        endDrawer: Container(
          height: double.infinity,
          child: Text('Hello'),
          width: 100,
          color: Color.fromRGBO(255, 255, 255, 0.9),
        ),
        drawer: testCinPage(),
        body: new TextField(
        ),
      )
    );
  }
}

flutter doctor -v

[✓] Flutter (Channel stable, 1.20.4, on Mac OS X 10.15.6 19G73, locale zh-Hans-CN)
    • Flutter version 1.20.4 at /Users/imac/flutter
    • Framework revision fba99f6cf9 (8 周前), 2020-09-14 15:32:52 -0700
    • Engine revision d1bc06f032
    • Dart version 2.9.2
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /Users/imac/Library/Android/sdk
    • Platform android-30, build-tools 30.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✗] Xcode - develop for iOS and macOS
    ✗ Xcode installation is incomplete; a full installation is necessary for iOS development.
      Download at: https://developer.apple.com/xcode/download/
      Or install Xcode via the App Store.
      Once installed, run:
        sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
        sudo xcodebuild -runFirstLaunch
    ✗ CocoaPods not installed.
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To install:
        sudo gem install cocoapods

[!] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] Connected device (1 available)
    • sdk gwear x86 (mobile) • emulator-5554 • android-x86 • Android 9 (API 28) (emulator)

! Doctor found issues in 2 categories.

@au-top
Please follow-up in the original ticket. Closing this as duplicate. The original ticket is assigned P6 label which means a feature request or bug we are unlikely to address.

I tried the same code on win and MacOS 10.15.6
Different situations have occurred, which can run normally on win, but it appears as shown in the figure on MacOS
Is this related to running a virtual machine system
They have the same operating environment
Fluent version 1.20.3
wearos api28 android9


All Pixel Devices keep skipping video

Bug
If you play any video on an Android Pixel phone, the video will always keep skipping throughout video playback.
Platform
Any Google Pixel Phone.
Which player are you experiencing the problem on:

Android ExoPlayer

Library version: 5.1.1
Steps To Reproduce
Play any video with React Native Video.
Expected behaviour

Video should play without skipping.

Reproducible sample code
Any Example

Not enough info to understand the issue...


args: Make the -k arg be a plain bool

This emulates the same -k format used in curl, where the flag doesn't take any parameter, it simpy gets activated if the -k is passed.
I found this when following the platform README, to try the public API, it was confusing that i needed to do -k true. Hope this doesn't break anyone's scripts?

@rcatalinas-reinfer While inconsistent with curl, the reason this is a bool (and other arguments like this in the CLI) is that it makes it somewhat easier to use in a script (e.g. bash) where you compute a boolean and then just set -- e.g. --accept_invalid_certificates=$ACCEPT_INVALID

Fair enough! I was imagining it could be for that purpose. Gonna close then.


ChaosBot is down

Dates and comment scores aren't updating. Appears to be that the Github API isn't responding correctly (from logs). For the commit with ID: "92857c62f631ae73627e2eaac8e650a6cb8a0bd9" in chaosbot/chaos, the web UI returns commit information:
https://github.com/chaosbot/Chaos/commit/92857c62f631ae73627e2eaac8e650a6cb8a0bd9
but the API does not:
https://api.github.com/repos/chaosbot/Chaos/statuses/92857c62f631ae73627e2eaac8e650a6cb8a0bd9
Also, I can't find any documentation for calling the API with a GET request, only the POST message. The only way to change the endpoint used is to open a PR, which @chaosbot will ignore, because the API doesn't work. Maybe Github will fix the API issue, or maybe we will need some manual intervention to let @chaosbot keep running.
For another example, notice how #338 is stuck at 3:14 time remaining.

Travis statuses are not returned by github api for some reason ;(

Hotfix here https://github.com/chaosbot/Chaos/commit/295545f87bf8fe9f5dfc56597dcb53b7e223ebd9, needs more investigation.  Props to @phil-r and @Smittyvb for looking into it so far

Some additional details on the original PR https://github.com/chaosbot/Chaos/pull/331#issuecomment-304549940

it looks like it's down completely now ;(

Or is it? It appears to be not down, but just very broken.

the current killer is running out of api requests for a few different reasons:
05-29 00:54 github_api   DEBUG    requests remaining: 5, reset in: 26s, cooldown sleep: 14.79s
05-29 00:55 github_api   INFO     requesting GET to '/repos/chaosbot/Chaos/statuses/8421c56baa717912c7154c47fde9660abe4cf6a3'
Traceback (most recent call last):
  File "chaos.py", line 60, in <module>
    main()
  File "chaos.py", line 55, in main
    schedule.run_pending()
  File "/root/.virtualenvs/chaos/lib/python3.6/site-packages/schedule/__init__.py", line 462, in run_pending
    default_scheduler.run_pending()
  File "/root/.virtualenvs/chaos/lib/python3.6/site-packages/schedule/__init__.py", line 75, in run_pending
    self._run_job(job)
  File "/root/.virtualenvs/chaos/lib/python3.6/site-packages/schedule/__init__.py", line 129, in _run_job
    ret = job.run()
  File "/root/.virtualenvs/chaos/lib/python3.6/site-packages/schedule/__init__.py", line 377, in run
    ret = self.job_func()
  File "/root/workspace/Chaos/cron/poll_pull_requests.py", line 28, in poll_pull_requests
    for pr in prs:
  File "/root/workspace/Chaos/github_api/prs.py", line 182, in get_ready_prs
    build_passed = has_build_passed(api, pr["statuses_url"])
  File "/root/workspace/Chaos/github_api/prs.py", line 147, in has_build_passed
    statuses = api("get", statuses_path)
  File "/root/workspace/Chaos/github_api/__init__.py", line 67, in __call__
    resp.raise_for_status()
  File "/root/.virtualenvs/chaos/lib/python3.6/site-packages/requests/models.py", line 928, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 403 Client Error: Forbidden for url: https://api.github.com/repos/chaosbot/Chaos/statuses/8421c56baa717912c7154c47fde9660abe4cf6a3

We had 5 requests remaining, so the api client slept a long time, but still the request failed.  This is because github I think is just giving us a rough figure.  So we'll run out of requests, fail on a call, process dies, supervisor restarts the process, but the first thing we do is make an api request, which fails.  Supervisor then gives up trying to bring up chaos.
But the underlying issue is why we are going through api requests so quickly...it looks like the caching patching got misplaced.  We were making an api request for every voter/user, every time we looked at a PR, and were going through them too quickly.
https://github.com/chaosbot/Chaos/pull/352 addresses both of these


adopt the one-relation model

Closes #13.

Turning this into a draft PR until we have an interface to import in the charm.

(integration tests are an expected failure ATM)


[Scheduler] Refactor Shared Service Code & Embed Config as Part of Binary

Refactored out ./binaries/scheduler/main.go code that is shared across repos to scootapi/server/setup.go.  This is a non breaking change since no functionality has been removed.

Default returns the default ice bag for DI and the default json schema
RunServer starts the API Server
Defines common flags for the executable

./binaries/scheduler/main.go uses refactored server code to use server setup code
Config is no longer a flag, but is read from a file.  I used go-bindata to create a binary representation of the file which is packaged and deployed as part of the scheduler binary.
If this looks amenable to folks we can then refactor the workerserver the same way

Current coverage is 72.08% (diff: 0.00%)

Merging #117 into master will decrease coverage by 1.24%

@@             master       #117   diff @@
==========================================
  Files            53         54     +1
  Lines          2340       2386    +46
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           1716       1720     +4
- Misses          532        574    +42
  Partials         92         92

Powered by Codecov. Last update a7f1b1c...90045c2


maxDuration broken in v2.9.4

Hey all (@simster7 @alexec ),
I'm facing a weird issue after upgrading to v2.9.4 from v2.9.2.
Argo version: 2.9.4
Maybe the issue comes from v2.9.3 with the PR #3477
retryStrategy:
limit: 4
retryPolicy: "Always"
backoff:
duration: "12s"
factor: 5
maxDuration: "200m"
I'm reaching the "Max duration limit exceeded" error even if the sum of backoff time is < then maxDuration value.
Could you please double-check de logic?
Cheers,
Fabio

Can you attach a full Workflow object where this happen? You can get it by running kubectl get wf <NAME> -o yaml. It's difficult to diagnose this issue without it.

Hey @simster7 thanks for your quick answer!
I shared with you in slack the yaml file and a screenshot of argo get result.
Please, let me know if you need any more information from me.
Cheers,
Fabio

Duplicate of #3665


Parser not working properly

Describe the bug
There are several cases, when parser does not work correctly. I can draw this conclusion from the comparison PostgreSQL and Arrow Datafusion queries.
Main causes of errors:

The precedence of bitwise shifts does not equal to other bitwise operators.
Unary operation - with the operations *, / and %  negates the result of the next statements.
The same problem like (2) we have with Intervals, when we want to add or subtract negative interval with other, we negate the whole result except of one interval.

To Reproduce

SQL expression
Arrow Datafusion
PostgreSQL

select 15 | 12331233 >> 1234123 & 12;
4
48175

select - 1234 % 12 % 3 * 1545 % 23;
-4
-17

select - 1234 % 12 % 3 * 1545 % 23;
-4
-22

select - 13 * 1324 * -234 / 24 * 23;
3562884
3859791

select -12 * 35 % -16 * 32;
-420
-128

select - interval '16 hours' + interval '2 hours';
18:00:00
-14:00:00

DataFusion CLI v25.0.0
❯ select 15 | 12331233 >> 1234123 & 12;
+-----------------------------------------------------------+
| Int64(15) | Int64(12331233) >> Int64(1234123) & Int64(12) |
+-----------------------------------------------------------+
| 48175                                                     |
+-----------------------------------------------------------+
1 row in set. Query took 0.001 seconds.
❯ select - 1234 % 12 % 3 * 1545 % 23;
+------------------------------------------------------------------+
| (- Int64(1234) % Int64(12) % Int64(3) * Int64(1545) % Int64(23)) |
+------------------------------------------------------------------+
| -4                                                               |
+------------------------------------------------------------------+
1 row in set. Query took 0.001 seconds.
❯ select - 1234 % 12 % 3 * 1545 % 23;
+------------------------------------------------------------------+
| (- Int64(1234) % Int64(12) % Int64(3) * Int64(1545) % Int64(23)) |
+------------------------------------------------------------------+
| -4                                                               |
+------------------------------------------------------------------+
1 row in set. Query took 0.001 seconds.
❯ select - 13 * 1324 * -234 / 24 * 23;
+----------------------------------------------------------------------+
| (- Int64(13) * Int64(1324) * (- Int64(234) / Int64(24) * Int64(23))) |
+----------------------------------------------------------------------+
| 3562884                                                              |
+----------------------------------------------------------------------+
1 row in set. Query took 0.001 seconds.
❯ select -12 * 35 % -16 * 32;
+-------------------------------------------------------+
| (- Int64(12) * Int64(35) % (- Int64(16) * Int64(32))) |
+-------------------------------------------------------+
| -420                                                  |
+-------------------------------------------------------+
1 row in set. Query took 0.001 seconds.
❯ select - interval '16 hours' + interval '2 hours';
+------------------------------------------------------------------------------------+
| (- IntervalMonthDayNano("57600000000000") + IntervalMonthDayNano("7200000000000")) |
+------------------------------------------------------------------------------------+
| 0 years 0 mons 0 days -18 hours 0 mins 0.000000000 secs                            |
+------------------------------------------------------------------------------------+
1 row in set. Query took 0.000 seconds.
❯

BUT:
❯ select -(interval '2 hours' + interval '3 hours') + (interval '5 hours' - interval '2 hours');
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| (- IntervalMonthDayNano("7200000000000") + IntervalMonthDayNano("10800000000000")) + IntervalMonthDayNano("18000000000000") - IntervalMonthDayNano("7200000000000") |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 0 years 0 mons 0 days -2 hours 0 mins 0.000000000 secs                                                                                |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set. Query took 0.001 seconds.

postgres=# select -(interval '2 hours' + interval '3 hours') + (interval '5 hours' - interval '2 hours');
 ?column?
-----------
 -02:00:00
(1 row)

❯ select -2 + -2 + 5 + -5;
+----------------------------------------------+
| Int64(-2) + Int64(-2) + Int64(5) + Int64(-5) |
+----------------------------------------------+
| -4                                           |
+----------------------------------------------+
1 row in set. Query took 0.001 seconds.

postgres=# select -2 + -2 + 5 + -5;
 ?column?
----------
       -4
(1 row)

❯ select -2 + -2 - 5 + -5;
+----------------------------------------------+
| Int64(-2) + Int64(-2) - Int64(5) + Int64(-5) |
+----------------------------------------------+
| -14                                          |
+----------------------------------------------+
1 row in set. Query took 0.000 seconds.

postgres=# select -2 + -2 - 5 + -5;
 ?column?
----------
      -14
(1 row)

Expected behavior
No response
Additional context
No response

I think I identified the issue.
On physical-expr, you can find this.
        Expr::BinaryExpr(BinaryExpr { left, op, right }) => {
            // Create physical expressions for left and right operands
            let lhs = create_physical_expr(
                left,
                input_dfschema,
                input_schema,
                execution_props,
            )?;
            let rhs = create_physical_expr(
                right,
                input_dfschema,
                input_schema,
                execution_props,
            )?;

It evaluates right/left independently and doesn't mix it up.

This issue comes from the fact that right/left of the BinaryExpr is not merged properly.
I can come up with few ways to fix this.

create dedicated Expr variant for handling

This one introduce some level of complexity, and it should be time consuming. There is a chance to introduce breaking changes

Check BinaryExpr when op is one of Add, Minus, Mul, Div

Should be easier than the above, but not quite sure how complicated it is going to be

Seems like sql parse doesn't re-organize when it gets div/mul.
I think this is the cause of the issue.
datafusion/sql/src/expr/mod.rs
impl<'a, S: ContextProvider> SqlToRel<'a, S> {
    pub(crate) fn sql_expr_to_logical_expr(
        &self,
        sql: SQLExpr,
        schema: &DFSchema,
        planner_context: &mut PlannerContext,
    ) -> Result<Expr> {
        enum StackEntry {
            SQLExpr(Box<SQLExpr>),
            Operator(Operator),
        }

        // Virtual stack machine to convert SQLExpr to Expr
        // This allows visiting the expr tree in a depth-first manner which
        // produces expressions in postfix notations, i.e. `a + b` => `a b +`.
        // See https://github.com/apache/arrow-datafusion/issues/1444
        let mut stack = vec![StackEntry::SQLExpr(Box::new(sql))];
        let mut eval_stack = vec![];

        while let Some(entry) = stack.pop() {
            match entry {
                StackEntry::SQLExpr(sql_expr) => {
                    match *sql_expr {
                        SQLExpr::BinaryOp { left, op, right } => {
                            // Note the order that we push the entries to the stack
                            // is important. We want to visit the left node first.
                            // todo!
                            let op = self.parse_sql_binary_op(op)?;
                            stack.push(StackEntry::Operator(op));
                            stack.push(StackEntry::SQLExpr(right));
                            stack.push(StackEntry::SQLExpr(left));
                        }
                        _ => {
                            let expr = self.sql_expr_to_logical_expr_internal(
                                *sql_expr,
                                schema,
                                planner_context,
                            )?;
                            eval_stack.push(expr);
                        }
                    }
                }
                StackEntry::Operator(op) => {
                    let right = eval_stack.pop().unwrap();
                    let left = eval_stack.pop().unwrap();
                    let expr = Expr::BinaryExpr(BinaryExpr::new(
                        Box::new(left),
                        op,
                        Box::new(right),
                    ));
                    eval_stack.push(expr);
                }
            }
        }

        assert_eq!(1, eval_stack.len());
        let expr = eval_stack.pop().unwrap();
        Ok(expr)
    }

@alamb @andygrove
I'm assuming that I can fix this issue by adding a logic to re-order things in this function fn sql_expr_to_logical_expr at datafusion/sql/src/expr/mod.rs.
But I'm not quite sure if there is a better way to do this. Would you kindly give me some advice?

Thanks for the report @thomas-k-cameron
I think the issue you describe is likely due to different operator parsing precedence in sqlparser compared to posgresql
I suspect the fix that will be the most effective and least brittle is to update the precedence rules in the sqlparser library, perhaps in here:
https://github.com/sqlparser-rs/sqlparser-rs/blob/2b37e4ae6ecbf2f22593b593ad1e4638ca76a8b2/src/parser.rs#L1975-L2056

I think the fix should be available sometime tomorrow https://github.com/sqlparser-rs/sqlparser-rs/issues/887

Fixed in https://github.com/apache/arrow-datafusion/pull/6753


Convert discovery processors into entity providers

Feature Suggestion
The following discovery processors would benefit from being converter to using the EntityProvider interface instead, as among other things that will enable immediate deletions rather than orphaned entities, as well as more granular control of the update interval. More details about entity providers can be found in the catalog customization docs.

[x] AwsS3DiscoveryProcessor #10480
[ ] GithubDiscoveryProcessor #12334
[x] GitLabDiscoveryProcessor #11886
[x] BitbucketDiscoveryProcessor #11345
[x] AzureDevOpsDiscoveryProcessor #11604

I'm interested in awsS3, bitbucket, and github. I didn't start working on any of these yet, but I'm open to contributing. If anyone starts to work on these, would be great to share it here (to prevent double work).

@Rugvip as an MVP would it be enough if the providers do the same as the discovery processors and create Location entities which then get picked up by the other processors? Or might that still cause orphans?

@pjungermann yeah that should be alright, probably the way we wanna implement it tbh. Eager deletions happen recursively so if a deleted location is the only thing referencing an entity then the entity will be deleted as well

I will look at replacing/converting the BitbucketDiscoveryProcessor next. Hereby, I plan to consider #9923 and create separate providers for Bitbucket Cloud and Bitbucket Server (fka. Stash).

https://github.com/bitcoin/bitcoin/issues/24783#issue-1194493518 @pjungermann

I'm interested in taking on the GithubDiscoveryProcessor and converting it to an Entity Provider.

@pjungermann Have you started with converting the BitbucketServerEntityProvider yet? Otherwise I can grab that one.

@goober No, I'm working on Bitbucket Cloud at the moment. I'm nearly done, need to polish a few things. I plan to create a PR soon. I decided to put this into a new module plugins/catalog-backend-module-bitbucket-cloud(may change still) instead of plugins/catalog-backend-module-bitbucket (I want to have both separated so you can pull in the one(s) you actually need/use).

@goober No, I'm working on Bitbucket Cloud at the moment. I'm nearly done, need to polish a few things. I plan to create a PR soon. I decided to put this into a new module plugins/catalog-backend-module-bitbucket-cloud(may change still) instead of plugins/catalog-backend-module-bitbucket (I want to have both separated so you can pull in the one(s) you actually need/use).

Thanks. Then I will wait until you have contributed your changes and will then finalize the BitbucketServerEntityProvider

The PR above is for the Azure DevOps implementation

PR #12334 will contribute the provider for GitHub

@goober are you still up for taking on Bitbucket Server?

@goober are you still up for taking on Bitbucket Server?

I moved on to another employer so unfortunately not. However, we got it working internally before I left, so maybe @ONordander wants to take a look at a contribution?

@namco1992 sounds good. Feel free to reach out if you run into challenges. You can drop your questions at the support channel in Discord, too.
@ONordander in case you have something which you could share and therefore, @namco1992 would not need to invest time, please let us know.

PS: we only have Bitbucket Server and GitHub (PR under review) left still.

@ONordander Cool! I will leave it for you then, look forward to your PR 😃

@pjungermann looking into what we are running locally and realized that I need to make changes to https://github.com/backstage/backstage/tree/master/packages/integration/src/bitbucketServer, to add possibility for username/password authentication.
What's the easiest way of doing that, a separate PR for the integration?

@ONordander I got you covered with that via PR #12711 related to another issue. It is waiting for confirmation by a Bitbucket Server user. Currently, we were hoping that @namco1992 can test it. But maybe you can give it a shot, too :)

@ONordander I got you covered with that via PR #12711 related to another issue. It is waiting for confirmation by a Bitbucket Server user. Currently, we were hoping that @namco1992 can test it. But maybe you can give it a shot, too :)

Nice, I'll try to get it running today for testing.

@Rugvip I think this issue is complete now? 🤔

Indeed, thanks! 😁
And thank you everyone that helped out with this! 🙏