Build with Golang 1.20

Just sanity-checking - were you able to build an image without issues?

Yes.


App-wide logs

Application-wide logs, returning a combined log stream of all app containers. Would simplify this usecase:
$ flynn log router
controller: not found
$ flynn -a router ps
e5eee5d32f1345ebb6c4de6220fc433f
$ flynn log e5eee5d32f1345ebb6c4de6220fc433f
...

This would simply become flynn log router

@benburkert and @bgentry are working on this.
The current plan is to replace logbuf with a logmux package that can buffer and ship logs to the aggregator. In order to keep the ability to debug when layer 1 (containing the aggregator) isn't running, we need to be able to get the recent logs of all jobs on a host. A couple options here (not all exclusive):

If layer 0 bootstrap fails, all logs could be dumped to flynn-host stdout or a log file
If a debug flag is specified, all logs could be streamed to flynn-host stdout or a log file

The main goal is to make sure we always have access to logs when things are broken, without too much overhead in flynn-host/logmux to support it.
The interactive attach endpoint will stick around, so we can have layer 1 bootstrap do an interactive run of any jobs it starts pre-aggregator and dump those logs if things fail.


RFC: Generalize platformtree (generalized_platformtree)

Feature Name: generalized_platformtree
Start Date: 2015-05-28

Summary
Allows construction of a platformtree with no additional macro code for each platform.
Motivation
As of right now, to get platformtree to be supported on a  platform, a significant amount of macro/plugin code must be written. This is undesirable as this code is a maintenance liability with regards to platform code changes, as well as a huge burden when adding a new platform to zinc.
Detailed design
Basic Example
An example of the new platformtree (direct port of the lpc17xx uart demo) would be as follows. This demo assumes that the *Conf structs have been defined with the right contents (usually the same as the arguments to ::new... might even consider generating the structs with a syntax extension.
// ...

use zinc::hal::lpc17xx::{system_clock, pin, uart};
use zinc::hal::pin::{Gpio, GpioDirection, GpioConf};

// ...

platformdef!(
comp sys_clk: system_clock::Clock = ClockConf {
    source: "main-oscillator",
    source_frequency: 12_000_000,
    pll: Some(system_clock::Pll {
            mul: 50,
            div: 3,
            out_div: 4,
        }),
};

group pin::PinConf {
    comp uart_tx: pin::Pin = GpioConf {
        index: 2,
        direction: GpioDirection::Out,
    };

    comp uart_rx: pin::Pin = GpioConf {
        index: 3,
        direction: GpioDirection::Out,
    };

    comp led4: pin::Pin = pin::PinConf {
        port: pin::Port1,
        index: 23,
        function: pin::Function::Gpio(GpioDirection::Out),
    };
};

comp uart: uart::UART = uart::UARTConf {
    baud_rate: 115200,
    mode: "8N1",
    tx: $uart_tx,
    rx: $uart_rx,
};

entry run($led4, $uart);
);

// ...

fn run<P: Gpio>(txled: P, uart: &uart::UART) {
    // ...
}

There are 3 basic commands in the grammar for the new platformtree.

comp <rust-pattern>: <rust-type> = <rust-struct-expr>, which allows the definition of a component where <rust-type> implements FromUnsafe<ConfStructType>
group <rust-path> {<comp>...}, which allows the definition of a group of components that should be checked for conflict
entry <rust-identifier>(...), which allows for the definition of the entry point of the program and its arguments.

The macro would then expand do something similar to this. Note: this assumes that there exists the following FromUnsafe trait which would be defined in zinc, and that FromUnsafe<XConf> is implemented for all X where it needs to be.
use core::convert::From;

pub trait FromUnsafe<T>: From<T> {
    unsafe fn from_unsafe(T) -> Self;
}

mod pt {
    #[start]
    #[allow(ununsed_variables)]
    fn start(_: isize, _: *const *const u8) -> isize {
        unsafe {
            let sys_clk = system_clock::Clock::from_unsafe(ClockConf {
                // ...
            });
            let uart_tx = pin::Pin::from_unsafe(GpioConf {
                // ...
            });
            let uart_rx = pin::Pin::from_unsafe(GpioConf {
                // ...
            });
            let led4 = pin::Pin::from_unsafe(pin::PinConf {
                // ...
            });
            let uart: uart::UART = uart::UART::from_unsafe(uart::UARTConf {
                // ...
                tx: uart_tx,
                rx: uart_rx,
            });
            main(&led4, &uart);
            0
        }
    }
}

The from_unsafe method is unsafe because the passed configuration may be invalid, but it will interpret it as valid regardless to avoid any runtime checks. A runtime-checked version of from_unsafe should be in from. Using from_unsafe is possible because the platformtree macro will have checked the validity of the configuration at compile-time. This preserves zinc's ability to provide incredibly fast runtime code, due to the lack of need for runtime checks and computations.
Safety
There are 3 things that need to be checked by the macro to ensure that the generated code will be safe.

Each configuration is actually valid for the hardware.
There are no conflicts between multiple configurations in the same group.
Each comp is consumed no more than once (fortunately the borrow checker will do this for us... see below).

Note that it is assumed that there can be no conflicts between comps in different groups (i.e. instantiating a timer will never conflict with instantiating a gpio pin). Therefore, it is necessary to group all things that may cause a direct conflict between one another.
There are a few conditions under which the generated code will not compile:

One of the component structs doesn't implement FromUnsafe<T>, in which case, the user tried to use an invalid T
The user tried to use a component in the construction of more than one other component, in which case the compiler would fail because components are only movable, not copyable.

These failures take care of (3) for us (yay!). Note that components will have to be updated to not be copyable, however.
Conflict Checking
To check (2), all the *Conf expressions in a group must be checked to ensure that there are no conflicts amongst them (i.e. using the same pin index / port combo for gpio pins).
To check this, we have to add a little bit of macro-crate code for each platform... specifically, for each conf struct that is going to be the root of a group, we must implement a method to check if there will be conflicts between two of the structs. Then, for every struct T besides that one that will be used as the group root, we must implement something akin to FromUnsafe<T> to convert the config struct to the root config struct for use in conflict checking. Then, just check for conflicts between every combination of two configurations within the group.
To check (1), one simply needs to implement a method that checks the validity of each of the Conf structs individually. Again, this is a little macro code when compared to the current amound required to build a platformtree for a new platform.
After these checks have been performed, it's just a matter of emitting the code as above, which is a very simple task as you will note that every identifier used has been passed in to the platformtree somehow, meaning that there is no strange macro code converting between types or serializations.
Alternatively, the checking of conflicts and configuration validity could be left to a lint pass extension, which would be incredibly slick. I haven't much experience with lint extensions, so if you know of a good way you think you would implement conflict & configuration checking with a rust lint pass, please comment.
Drawbacks
This makes the platformtree written by the user much more verbose.
Alternatives
Other types of more generic key/value syntax were considered, but using rust-like syntax makes for easy passing of things onwards to rustc to avoid a lot of macro code.
If we do not implement something like this, platformtree will slowly become a maintenance hazard as a ton of macro code has to be written for every peripheral on every platform possible.
Unresolved questions
Syntax
What syntax should be used for cross references within the tree? I currently went with $var syntax because that's what the quote_ macros in rustc use.
General syntax things: pretty much any syntax in the platformtree is obviously up for debate.
Conflict Checking
A little more thought needs to be put in to the design of the conflict checking code as there could be some problems that arise with the static dispatch method mentioned above. Ultimiately, however, this kind of conflict checking based on the AST representations will be possible, and (I hope) much cleaner than the current amount of macro code required for every new peripheral / platform.
On second thought, conflict checking may actually be better left to a lint pass. That would be really slick. If you have a better idea: comment!

Crazy idea afterthought: If all checking could be implemented with a lint pass alone, one could almost get rid of the platformtree! macro entirely...

I wrote this waaaay to late at night. Needs more thought. Closing for the time being.

A precursor to this is deciding where the mapping from board to periperals occurs. i.e.

Teensy 3.1

MK20DX256VLH7

Cortex M4
Freescale peripheral A, B, C, etc

Pin map to board labels

Then when the end user says "I have a Teensy 3.1, I want a uart on pin 0, and the led activated", Zinc knows what version of the UART HAL to use, which pins are able to be used, etc.

Good thoughts.  I agree with @bharrisau that figuring out where to define "boards" (and give users the ability to provide boards) will live.  With device tree in the kernel, this is handled via somewhat ad-hoc via inclusion of dtsi (device tree source includes).    Board/SOM providers will then build on this, enabling some parts which have concrete usages and leaving others untouched.  Finally, an end customer will define the final layer on top of this for his/her design.
I definitely don't like having to have a .rs and _pt.rs for each peripheral/target combination.

Additional thought, we can avoid the need to maintain a parser if we use the MetaItem parser.
#[zinc_main(teensy_3_1,
            clock(in(main, 12_000_000), out(pll, m=50, n=3, d=4)),
            timer(1, counter=25, divisor=4),
            gpio(teensy23, out),
            someVendorPeripheral(xxx, yyy))]
fn main(clock: ZincClock, mytimer: ZincTimer, led: ZincGPIO, special: zinc::hal::vendor::CustomPeripheral) {}

#[zinc_main(custom(clock=zinc::hal::freescale::Clock123, timer=mycrate::CustomTimer),
            clock(in(main, 12_000_000), out(pll, m=50, n=3, d=4)),
            timer(1, counter=25, divisor=4))]

Being able to handle peripherals defined outside of zinc complicates things (as the zinc_main macro can't just call the code at compile time). In the above example, the zinc_main macro holds the mappings for all the supported boards.

I'll start a wiki entry for the Zinc init process, as that needs to be defined first.

Additional thought, we can avoid the need to maintain a parser if we use the MetaItem parser.

That looks more like a hack and you can hardly provide same error reporting in this case.

So I've actually been experimenting with just using a lint plugin and then checking every struct expression against each other to make sure you don't every define a conflicting PinConf struct... anywhere. It actually feels pretty slick.

Ok, so, what if we just allowed the user (or zinc) to define boards by defining some simple const traits on Conf structs.... for example, if we take the syntax of platformtree from above...
use zinc::hal::sam3x::{pin, uart};
use zinc::hal::{Gpio, GpioDirection};
use zinc::hal::sam3x::arduino_due;

platformdef! {
comp led4 = arduino_due::GpioConf {
    index: 13,
    direction: GpioDirection::Out,
}

comp uart_tx = arduino_due::GpioConf {
    index: 14,
    direction: GpioDirection::Out,
};

comp uart = uart::UARTConf {
    baud_rate = 12435,
    ...
    tx: uart_tx,
};

entry main(&led4, &uart);
}

fn main<T: Gpio>(tx_led: &T, uart: &uart::UART) {
    // ...
}

That would let the user decide whether to use the board mapping style or that of the MCU, which I imagine would be rare, but at the very least handy for examples. This is an example expansion of the above macro.
use zinc::util::{FromUnsafe, IntoUnsafe};

const led4_CONF: pin::PinConf = arduino_due::GpioConf {
    // ... from the macro
}.into_unsafe();

#[start]
fn start(_: isize, _: *const *const u8) -> isize {
    let led4 = From::from_unsafe();
}

Then the arduino_due mod just has to define the GpioConf struct and const impl IntoUnsafe<pin::PinConf> for GpioConf and you're off to the races.

That's how it used to work, actually?

Why exactly did the project choose to move away from that?
While we don't have a 1:1 mapping between platformtree keys/values and something in rust, there will always be lots of platform-specific parser-related code (I think).

The current implementation of const fn doesn't allow for const implementations of traits, so you'd have to wait for full CTFE to land before you can do exactly what you propose (see the const fn proposal for details)
But once CTFE does land, could we do something like the following:
trait ZincConfig {
    type VerfiyError;
    const fn verify(&self) -> Result<Self, Self::VerifyError>;
}

Then the user would just do something like this:
#[inital_config]
const MyConfig = MyBoardConfig {
    gpios: [GpioConf{...},],
    ....
}

And the initial_config syntax extension would just need to check that MyConfig is Ok(a). This would keep almost all of the platformtree logic out of syntax extensions. This is only do-able, of course, once rust has CTFE, but you could probably fake it by doing the name mangling yourself (e.g. every board has a my_board_config_verify function instead of impling a trait.

Also, what do you mean when you say there isn't a 1:1 mapping between platformtree and rust? Could you give an example? Does this mean platformtree will always need to be a syntax extension?

Why exactly did the project choose to move away from that?

 As I later started to consider power planes and hardware re-init, PT started to actually shape back to those structs.
CTFE would really help with the messy macro approach.

Hmmm.. Maybe related?
https://github.com/rust-lang/rfcs/blob/master/text/0911-const-fn.md

@awelkie When I said there's no 1:1 mapping between PT and rust code, I meant that every object in the platformtree doesn't necessarily have an equivalent in rust. For example, take the gpio PT code from the blink_pt example...
    gpio {
      1 {
        led1@18 { direction = "out"; }
        led2@20 { direction = "out"; }
      }
    }

What exactly would the gpio object map to? Well, it maps to the collection of all GPIO peripherals on the lpc17xx board. There is no such abstraction in zinc, as we go straight to the level of a Pin.
This can be interpreted in one of two ways:

This is a fault in platformtree as platformtree should map 1:1 with zinc code.
This is a fault in the zinc hal code for the platform, as it doesn't closely enough resemble the hardware so that the hardware configuration can map 1:1 with hal code.

Note for self: related #207


Add support for deploying External DNS on existent K8S Namespace in cluster

I would like to be able to deploy External DNS into an existent K8S namespace in my cluster, such as kube-dns, without letting this module to create it for me.
As per actual behavior, the options are to use default kube-system or to create a new namespace.
I suggest to create an optional boolean flag (i.e.) k8s_create_namespace with default value true.
The new flag should be introduced in the count field of the kubernetes_namespace resource as follows:
  count = (var.enabled && var.k8s_create_namespace && var.k8s_namespace != "kube-system") ? 1 : 0
  ....

@gastoncan
Hey, sorry for the delayed response. The change looks good to me.
Feel free to make a PR for this as well. If not one of us will take a look at implementing this later.


0.8.6 Compatability

Hex Size Support no longer appears to work properly with 0.8.6. Previously edited tokens retain their properties, offsets and sizes, but the icon for editing these does not appear when a token is selected.

I have already submitted a pull request of my fix for this issue #12 .
Assuming my fix is correct you can replace
const configButton = html.find('.config');
with
const configButton = html.find('[data-action="config"]').first();
in the modules/hex-size-support/modules/hooks.js (the code you need to change should be on line 11)

I apologize. I've been absolutely swamped with work this week, but I've been meaning to get time to look over the PR that should resolve this issue(as mentioned above, thanks @FolkvangrForgent). It's just a little difficult for me to check over it at the moment because my current version of foundry is still not updated and I'm running a mission in it and I don't want to mess it up. I'll try to dig up one of my old VMs and look it over some time tonight. Thanks for your patience!

This should now be resolved with the newest version available. Thank you for your patience.


add file willweatherford.txt

Pull request from WillWeatherford/sea-w32-uge

Thanks for coming to the workshop!


styles of every component is in the dom

Laravel Mix Version: 4.0.15
Node Version (node -v): 8.16.0
NPM Version (npm -v): 6.4.1
OS: mac osx (inside docker shell)

Description:
When your app has a vue-router with multiple routes or pages already, you can see or notice that you can see a lot of <style> inside <head> which includes from all components whether it is unmounted or not.
Steps To Reproduce:

just having multiple routes/pages with vue-router
inspect your <head> tag and notice when you route change, no updates on list of <style> (s) usually it mounts a new <style> when route change on vue-cli projects which is the correct behaviour.

NOTE: just noticed this cause my project configuration is on theming, encountering css duplicates when you have two components that are almost similar in content. (might not be an issue on smaller projects)

I would like to see a solution to this as well...


Axibase Time Series Database

Please only report on one project or product per issue
Guidelines for getting added to the CNCF Cloud Native Landscape:

We generally will only list a company in one box, to represent its major or best known offering. We occasionally make exceptions for large companies.
Projects with at least 250 GitHub stars that clearly fit in an existing category are generally included.
We are unlikely to create a new category for products/projects as we'd rather find the best home with the current options.
We are generally not including commercial versions of open source software, when that version just includes minor tweaks.
Closed source products need to link to a clear description of your product; no stealth mode companies.
Your project or company needs a logo.

Project or Product name:
Axibase Time Series Database
Is it open source? (if you are tempted to say partially, please answer no):
No
What are the best URL(s) for it? Repo and homepage (if different) for open source, product homepage for closed source.:
https://axibase.com/products/axibase-time-series-database/
What category does it belong in?
Observability and Analysis

The category is based on the Docker monitoring use case: https://github.com/axibase/atsd-use-cases/tree/master/Solutions/docker

What's the URL for the best logo (and it needs to include the name)?
http://axibase.com/wp-content/uploads/2014/12/axibase_logo_orange-2.png
Anything else we need to know?:
Github Stars:

https://github.com/axibase/atsd - 31
https://github.com/axibase/atsd-use-cases - 304
Other repos with clients etc.

Hi @rodionos, we are including Axibase under Monitoring in the upcoming version, releasing soon! Thanks

@shawnpreissner Great, thank you.


[Bug]: Rest endpoints returns 404 on anything but get request when deployed

What happened?
I am creating a next.js static web app using a psql database. The problem I am having is when I deploy the SWA on azure the data-api endpoints are not allowing post requests. Here is an example of the behavior captured in postman:

Here is what the same calls look like when running the static web app locally:

The post requests contain the body
{
    "message":"Tax estimate success",
    "data": "{\"data\":\"none\"}"
}

Here are the contents of my staticwebapp.database.config.json file:
{
  "$schema": "https://github.com/Azure/data-api-builder/releases/latest/download/dab.draft.schema.json",
  "data-source": {
    "database-type": "postgresql",
    "connection-string": "@env('POSTGRES_URL')",
    "options": {
      "set-session-context": false
    }
  },
  "runtime": {
    "rest": {
      "enabled": true,
      "path": "/rest"
    },
    "graphql": {
      "enabled": true,
      "path": "/graphql",
      "allow-introspection": true
    },
    "host": {
      "cors": {
        "origins": ["http://localhost:4280", "https://calm-river-08895cf10.3.azurestaticapps.net"],
        "allow-credentials": false
      },
      "authentication": {
        "provider": "StaticWebApps"
      },
      "mode": "development"
    }
  },
  "entities": {
    "Store_Log":{
      "source": {
        "object": "store_log",
        "type": "table"
      },
      "graphql":{
        "type": {
          "singular": "store_log",
          "plural": "store_logs"
        },
        "operation": "query"
      },
      "permissions": [
        {
          "actions": ["*"],
          "role": "anonymous"
        }
      ]
    }
  }
}

The static web app is on the free hosting plan.
For the database I enabled "Allow public access from any Azure service within Azure to this server"
I've been in contact with support at Compunet but we haven't had any luck determining why this issue is happening.
Any help would be greatly appreciated. Thank you.
Version
0.9.7
What database are you using?
PostgreSQL
What hosting model are you using?
Static Web Apps (SWA)
Which API approach are you accessing DAB through?
REST
Relevant log output
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

We're experiencing a similar issue, but we're using Next.js with CosmosDB and the /graphql endpoint. Locally everything works fine, but after deployment all post requests to data-api/graphql return 404. Browsing to /data-api returns "Healthy" both locally and in Azure.
An example that works locally but does not work in Azure: https://zealous-island-07e7a8903.4.azurestaticapps.net/api-test/page. In the console you can see it's returning 404 after clicking either list or get.

The issue was solved by some Azure release according to my compunet support contact I'm going to just close thise.


DSO selector modals show results by relevance even if no query is given

Describe the bug
Results shown in Community/Collection/Item selection modals are ordered by relevance.
When no query is given, this can be confusing and doesn't match up with the behaviour of the Collection selector in legacy DSpace.

To Reproduce
Steps to reproduce the behavior:

Log in to any DSpace instance as an admin
Open any DSO selector modal (e.g. new Item, edit Collection, ...)

The order of the results will be arbitrary

Expected behavior
For clarity, results should be ordered alphabetically by title when no query is given
This is mostly important for Communities and Collections

Since there are fewer entries, the user is likely to expect them to match the "Top Communities" or "Community List" view
Sort by relevance feels random

Related work
https://github.com/DSpace/dspace-angular/issues/1331

@tdonohue this has significant overlap with the WIP #2011; @KoenP can address it within that PR if that's ok with you

Closing, issue was already covered in
https://github.com/DSpace/DSpace/issues/8404
https://github.com/DSpace/dspace-angular/pull/2007


[CARBONDATA-3582] support table status file backup

When overwriting table status file, if process crashed, table status file will be in corrupted state. This can happen in an unstable environment, like in the cloud. To prevent the table corruption, user can enable a newly added CarbonProperty to enable backup of the table status before overwriting it.
New CarbonProperty: ENABLE_TABLE_STATUS_BACKUP (default is false)
When enabling this property, "tablestatus.backup" file will be created in the same folder of "tablestatus" file
TODO: add document

[X] Any interfaces changed?
No
[X] Any backward compatibility impacted?
No
[X] Document update required?
Yes
[X] Testing done
new testcase is added
[X] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.
No

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.1/856/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.2/862/

Build Failed  with Spark 2.3.2, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.3/864/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.1/870/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.2/876/

Build Success with Spark 2.3.2, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.3/878/

retest this please

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.1/875/

Build Success with Spark 2.3.2, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.3/883/

Build Success with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.2/881/

@jackylk : please resolve the conflict

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.1/898/

Build Success with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.2/905/

Build Success with Spark 2.3.2, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.3/906/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.1/903/

Build Success with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.2/910/

Build Failed  with Spark 2.3.2, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.3/911/

@QiangCai please review this PR, testcase failed in CI but passed in my laptop. Feel like multi-thread issue?

Please rebase it.

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.1/912/

Build Success with Spark 2.3.2, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.3/920/

Build Success with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.2/919/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.1/919/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.2/926/

Build Success with Spark 2.3.2, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.3/927/

retest this please

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.1/934/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.2/943/

Build Success with Spark 2.3.2, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.3/944/

retest this please

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.1/989/

Build Success with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.2/998/

Build Success with Spark 2.3.2, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.3/1001/

retest this please

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.1/1036/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.2/1045/

Build Success with Spark 2.3.2, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.3/1050/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.1/1182/

Build Success with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.2/1191/

Build Success with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.3/1201/

LGTM

@jackylk : please take care of TODO: add document

@jackylk Every time it will create a new backup file or it will create new backup and delete old backup file??? otherwise number of backup file will be more

It will overwrite the backup file so only one backup file will be there @kumarvishal09

document is added in configuration-parameters.md @brijoobopanna

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.1/1236/

Build Success with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.3/1255/

Build Success with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.2/1246/

LGTM


Unable to switch on "background syncronization""

Every time I open setting the "Enable background syncronization" toggle is off.
V0.8.2 G-#127

Fixed for next released : see #2075


Pumpjack problem

just a question is there anything wrong with the pumpjacks because I always get a problem which is that one of my pumpjacks just stops working even though the other ones are working.

Could you provide more information on this?

Where is the pumpjack located?
How is it being powered? Does your base have enough power to power the pumpjacks?
Do you have another pumpjack in the same chunk?

My hunch is that you have 2 pumpjacks in the same chunk that has been depleted of oil, leading to one of them not working.

Could you provide more information on this?
* Where is the pumpjack located?

* How is it being powered? Does your base have enough power to power the pumpjacks?

* Do you have another pumpjack in the same chunk?

My hunch is that you have 2 pumpjacks in the same chunk that has been depleted of oil, leading to one of them not working.

yup I had 2 pumpjacks in the same chunk, I didn't know that, thank you


Merge develop into main to include minor feature updates

Warnings

:warning:
:pencil: Please include a description of your PR changes.

:warning:
:thinking: Well, it seems like that there are no tests in this PR. Please think about the test coverage of the added functionality and feel free to ask for help if you need it.

Messages

:book:

Thanks - We :heart: our documentarians!

:book:

:man_technologist: Some dependencies were added or removed in package.json file.

:book:
:tada: This PR contains commits that are prefixed with "feat", that will increase the semantic version of the project. The minor version will be changed.

:book:
:tada: This PR changed 23 lines of code in the project.

:wave: Hello demirtasdurmus and thank you for your contribution!

Before the reviewers could start with a code review process, please ensure that all the following points in your pull request (PR) are fulfilled:

Each variable and function inside component or service should contain a short code description (JSDoc-TSDoc)
In our Typescript applications we always try to avoid the type any and define new types or interfaces therefore
For the names of classes, functions or variables we use camelCase style (capitalized style for classes)
Code documentation for functions, classes, interfaces etc. should be written in capitalized style

  Generated by :no_entry_sign: dangerJS against 7b23af791322ad414765206def4ebf12be0954c8

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


Some users can't register

E.g. russian users who enter their names in cyrillic

Also cherry picked this to the 1.0.0 branch


Capitalization

I think there should also be a word between "security practices, LibreSSL". Maybe "security practices, like LibreSSL", but not sure.

Thanks for fixing the capitalization already. And you're right, it does seem like something is missing there.
@nishanil @ardalis can you review the sentence to suggest a fix here?

Yeah, that sentence is difficult. I'd suggest simplifying it:
Examples include
[Static analysis tools](https://www.whitesourcesoftware.com/), [encryption libraries](https://www.libressl.org/), and [security practices](https://azure.microsoft.com/resources/videos/red-vs-blue-internal-security-penetration-testing-of-microsoft-azure/).

Thank @ardalis. Created a suggestion based on your comment. @andresnava can you please apply that? Thanks.


[QUESTION] Max angle delta

Title. What does it do and what happens if i change it?

#1507

#1507


KCD Bologna 24

https://community.cncf.io/events/details/cncf-kcd-italy-presents-kcd-italy-2024/

[ ] Confirm participation
[ ] Merch

delivered, videos will be uploaded in the following weeks


qmsched: support new bangle.js 2 menu, add /LANG/ hints

Whoops, this app was quite broken with the new menu, because of how it abused format.

Ahh - thanks :)


Replace eslint with deno_lint

dependabot should close following PRs after this PR
#12, #13, #14

Sorry to make wrong PR 🙇♂


Updated to ASP.NET 5 RC1

brilliant! i'll have a look later today, just upgrading Smidge to rc1 now

Finally getting around to some of this, thanks again!

You're welcome. Curious to see how quick this will go

well v8 needs to be made/released before v9 can actually work but i'll be tinkering away with v9 when I have some time for specific aspnetcore functionality that will need to be implemented differently than nromal aspnet


Memory view

No window present for memory view. It should not be very different from stack view

Addressed in https://github.com/zinstack625/mtemu/pull/8


feat: support pitch rotation to the world

Description
Right now Sashimi supports rotating around the z-axis but it should also be possible to pitch the world perspective up and down to allow for a more free-moving camera.
Requirements

[ ] Being able to pitch the world up and down to show different perspectives
[ ] The current perspective should still be the default

Additional Context
Fauxton3D supports pitching the world, the math is probably defined somewhere in there so it could be a good starting point for figuring this out.

Fauxton3D's code and folder structure looks very strange to me but maybe the pitch calculations for camera is here:
https://github.com/Gizmo199/fauxton3D/blob/172bbc691c54c174f10a9abb04f8f4fa59db57e9/Fauxton 3D/scripts/lib_CameraScripts/lib_CameraScripts.gml#L133

@wolfenrain it would be fantastic to have support for pitching the world. I see you have PR #16 open for this, looking forward to being able to try it out! 👍🏻


Implement ServiceCatalog update when registered services change

Adding logic to update all the matching service catalogs given changes to registered services with or without contraints.

Thanks @Kartikey-star will take care of that test as well


Analytics Refactor Step One - Add DAA tags

Add those daa-ll and daa-lh to all our trackable elements, in the same fashion as in Milo.
By inspecting elements in like the USEN homepage, you should be able to see them being tagged correctly. With martech on and clicking them, you should be able to see requests being sent out to sstats.adobe.com
Given our current manual way of tracking, this will cause buttons/anchors that we are already tracking to send two events: one using the old event naming convention, one with the new convention.
This will also automatically add tracking to many elements that we are not currently tracking, especially on homepages.
Resolves: https://jira.corp.adobe.com/browse/MWPW-138704
Wiki: https://wiki.corp.adobe.com/display/adobedotcom/Express+Analytics+AEP+Integration
Test URLs:

Before: https://stage--express--adobecom.hlx.live/express/?martech=off
After: https://analytics-refactor--express--adobecom.hlx.live/express/templates/?matech=off
After: https://analytics-refactor--express--adobecom.hlx.live/express/

[Do not merge] We still need to decide on whether we want to keep MEP. There's also an incoming change in the Milo repo that we want to pick up.

closing until the conversation is more settled


Feature Builder doesn't support adding Step by name

The feature builder has a nice set of API exposed to be able to build setup and tear down methods.  But they auto generate the name of the step that is being run.
fmt.Sprintf("%s-setup", b.feat.name)

However, this can be a bit of a problem to debug things. There is a really useful builder method called WithStep that can let you customize the name of the step. However, the argument used level used for this is coming from pkg/internal/types/level.go
// WithStep adds a new step that will be applied prior to feature test.
func (b *FeatureBuilder) WithStep(name string, level Level, fn Func) *FeatureBuilder {
	b.feat.steps = append(b.feat.steps, newStep(name, level, fn))
	return b
}

Which means we can't really use that or invoke it from anywhere outside. Which means the examples can't use that either or anything that injects e2e-framework as a dependency. Does it make sense to move some bits from pkg/internal/types to a reusable package ?

@harshanarayana Thanks for bringing that up.
Right now the api supports very specific sets of steps

Assessment
Setup
Teardown
(might be one more)

Some of the pre-baked steps above do have auto-generate names (except Assessment).  This is because the internal method FeatureBuilder.WithStep requires a name.  The reason WithStep is hidden is because each step type, specified by Level (i.e. Assess, Setup, Teardown, etc) are treated differently during execution.
Maybe, one thing that can be done is to extend the Feature API to allow Setup and Teardown to have names as well as shown below:
func TestHello_WithSetup(t *testing.T) {
	e := env.NewWithConfig(envconf.New())
	var name string
	feat := features.New("Hello Feature").
		WithLabel("type", "simple").
		WithSetup("SetupName", func(ctx context.Context, t *testing.T, _ *envconf.Config) context.Context {
			name = "foobar"
			return ctx
		}).
		Assess("test message", func(ctx context.Context, t *testing.T, _ *envconf.Config) context.Context {
			result := Hello(name)
			if result != "Hello foobar" {
				t.Error("unexpected message")
			}
			return ctx
		}).WithTeardown("Teardown", func(ctx context.Context, t *testing.T, _ *envconf.Config) context.Context {
                ...
		}).Feature()

	e.Test(t, feat)
}

@vladimirvivien  I see what you mean.
I do like the idea of extending the feature API to provide additional option to be able to provide step names. Makes it a bit more readable and easy to debug. Let me have a Draft PR opened on this for review.


Message Sending

I added this to my server and it is monitoring Nike, but it hasn't sent any messages. I added it 2 hours ago though so I'm not sure when messages should be sent. Does it only send when new products are added?

When new products added or when something change

It took me a second to realize that, thanky you for your help. I must've switched up the instructions with another github bot that said it would spam until all the shoes were up


Proposal for Workflows

This PR is a playground reorganizing some MNE-documentaiton:
(I'll rewrite the PR content at some point, to make our goals more concrete)
@dengemann, @DraganaMana, @Izem0, @virvw, @biancasama

@drammock what are your thoughts here? shall we just close?

@massich as far as I'm concerned this one can be closed... I added your fork as a remote, so I can keep in mind the changes suggested here.  I'll make sure to ping you when I open the next docs PR, which will focus on a single entry point to the (post-installation) docs, with a defined sequential ordering of pages, and more narrative explanations.

It was not me who was driving the changes here. This was collective work done in a hackaton. We should keep it in mind, but not lose our head about it. Things are moving, and they will consolidate in some form or another.
@drammock what I think is important is this part
    'subsection_order': ExplicitOrder(['../examples/io/',
                                       '../examples/simulation/',
                                       '../examples/preprocessing/',
                                       '../examples/visualization/',
                                       '../examples/time_frequency/',
                                       '../examples/stats/',
                                       '../examples/decoding/',
                                       '../examples/connectivity/',
                                       '../examples/forward/',
                                       '../examples/inverse/',
                                       '../examples/realtime/',
                                       '../examples/datasets/',
                                       '../tutorials/']),

I'll open a PR with it.


Tweak ActiveStorage migration

Allow verify task to re-enqueue a job if an option is specified
Only enqueue jobs by default for vacancies with documents
Fix bug with wrongly copied variable name

Review app deployed to https://teaching-vacancies-review-pr-3537.london.cloudapps.digital


Wifi List not coming up

Hi,
This is a very useful library and it is very handy too.
I ran into an issue, I have used the author's example code .
After I connect my ESP32 device with WIFI and click ready in the applications following exception is thrown and WIFI list doesn't appear. Could you please help me out with this
I/flutter ( 9053): │ #0   WiFiBlocSoftAP._mapLoadToState (package:esp_softap_provisioning_example/wifi_screen/wifi_bloc.dart:54:11)
I/flutter ( 9053): │ #1
I/flutter ( 9053):
I/flutter ( 9053): │ ⛔ Error scan WiFi network NoSuchMethodError: The method 'startScanWiFi' was called on null.
I/flutter ( 9053): │ ⛔ Receiver: null
I/flutter ( 9053): │ ⛔ Tried calling: startScanWiFi()
I/flutter ( 9053): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Thanks in advance

Hello, thanks for the nice comments.
prov object returns null from the following line, so you get this issue.
prov = await softApService.startProvisioning(..)
Please make sure you provided permissions for HTTP in AndroidManifest.xml for Android and Info.plist for iOS. Check README regarding how to update these files for HTTP permission.
Hope it helps

I checked my AndroidManifest.xml it is according to the README file of the repository but the error still remains

I am using the same code as yours so I have similar AndroidManifest.xml as example code
<manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.omert.esp_softap_provisioning_example">    <uses-permission android:name="android.permission.INTERNET"/>   <application        android:label="esp_softap_provisioning_example"       android:usesCleartextTraffic="true"       android:icon="@mipmap/ic_launcher">        <activity            android:name=".MainActivity"            android:launchMode="singleTop"            android:theme="@style/LaunchTheme"            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"            android:hardwareAccelerated="true"            android:windowSoftInputMode="adjustResize">            <!-- Specifies an Android theme to apply to this Activity as soon as                 the Android process has started. This theme is visible to the user                 while the Flutter UI initializes. After that, this theme continues                 to determine the Window background behind the Flutter UI. -->            <meta-data              android:name="io.flutter.embedding.android.NormalTheme"              android:resource="@style/NormalTheme"              />            <!-- Displays an Android View that continues showing the launch screen                 Drawable until Flutter paints its first frame, then this splash                 screen fades out. A splash screen is useful to avoid any visual                 gap between the end of Android's launch screen and the painting of                 Flutter's first frame. -->            <meta-data              android:name="io.flutter.embedding.android.SplashScreenDrawable"              android:resource="@drawable/launch_background"              />            <intent-filter>                <action android:name="android.intent.action.MAIN"/>                <category android:name="android.intent.category.LAUNCHER"/>            </intent-filter>        </activity>        <!-- Don't delete the meta-data below.             This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->        <meta-data            android:name="flutterEmbedding"            android:value="2" />    </application></manifest>
these are parameters that I have given in device
wifi_prov_security_t security = WIFI_PROV_SECURITY_0;
const char *pop = "";
const char *service_key = "abcd@123";        ESP_ERROR_CHECK(wifi_prov_mgr_start_provisioning(security, pop, service_name, service_key)); (edited)

AndroidManifest.xml looks okay,
Please use WIFI_PROV_SECURITY_1 and put a valid pop for both ends. (app and esp32)
I believe there is a fundamental issue in your setup, It doesn't establish the session. if you can explain more about what steps do you follow. I hope I can help.
I hope you don't miss to connect to ESP32's WiFi AP.
Do you see any error output in ESP32 terminal screen?

Hi, I am teammate of @devarsh9 .

output log in ESP32
I (2097) app: SoftAP started
I (2097) app_prov: SoftAP Provisioning started with SSID 'PROV_9764E0', Password 'PROV_PASS'
I (7127) wifi:new:<1,1>, old:<1,1>, ap:<1,1>, sta:<255,255>, prof:1
I (7127) wifi:station: 06:3a:75:f2:5f:a6 join, AID=1, bgn, 40U
I (7157) app: station:06:3a:75:f2:5f:a6 join, AID=1
I (7567) tcpip_adapter: softAP assign IP to station,IP is: <IP_ADDRESS>
After connecting and clicking Ready button in APP there's no output in ESP32
And app keeps scanning

Okay,
You should follow up to find where does it hang.
prov = await softApService.startProvisioning("<IP_ADDRESS>:80","abcd1234");
After this line, it goes to the following line,
var success = await prov.establishSession();
Put some debug points in establishSession function and check where does it hang? especially if it passes transport.sendReceive line or not.

I think there is problem in wifi scanning so we skipped that part.
So we created a new project in which I called three methods.

establishSession
sendwificonfig
applywificonfig

and it works perfectly in debug mode.
But it doesn't work when we try using after building apk.


Correct the capitalization of Xcode in README

This pull request corrects the capitalization of Xcode :sweat_smile:
https://developer.apple.com/xcode/
Created with xcode-readme.

This was fixed elsewhere.


Copy a collection from one environment to another environment

Motivation
Our content editors upload content (adding new collections) to the Production environment in advance of our design team working on the layout/styling.  The design team works off the Development environment so they can workout the layouts and tweak the styling.
Currently, we would clone the Production environment (with the newly added collections) to create a new Development environment so the design team can work off the latest content.   The cloning process can take about a hour and it will take longer as we add in more content.
Proposed solution
It would be useful to have a feature where a collection can be copied from one environment to another environment.

Hi @CAtSG,
Thank you for submitting an issue here!
Is there any reason you cannot use the canImport configuration option to limit what gets imported? See example at https://github.com/kontent-ai/backup-manager-js#restore-in-code
For example, to import only content items in certain collection you could use the contentItem config option such as:
  contentItem: item => item.collection.id === 'yourCollectionId'

Similarly, you can control every object that gets imported.

Hi @CAtSG,
Sorry for a bit late comment (I missed it :-)).
I see, but unfortunately that's a bit outside of my scope and scope of this open source tool :) If you really want this feature I would recommend to get in touch with your Customer Success Manager (or Sales manager) and let him / her know that this feature is really important to you. This will in turn help our product managers prioritize certain things.


Update lifecycle-management-overview.md

Based on the some of the cases that we received, I have added additional FAQ. Also, added a suggestion to existing FAQ, that might help the customer in understanding BLM policy better.

@normesta
Can you review the proposed changes?
When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

Hi @ShraddhaSSwadi - thanks for the contribution. Can you please accept this PR into your branch - https://github.com/ShraddhaSSwadi/azure-docs/pull/2. This PR edits the text for style guidelines and proper capitalization. Once you've accepted (merged) this editorial PR, I'll sign off on the contribution. Thank you!

Thank you!
#sign-off


OLH-1173 emit an audit event when a user clicks the email link on the triage page

Proposed changes
OLH-1173 Emit an audit event when a user clicks the email link on the triage page
What changed
Added TypeScript definitions specifically for our Session and User types.
Lots of files changed due to TS being added mostly.
Create a new route in app.config.ts  register it in the contact router, and add a controller function for it.
Move the logic that appends the URL parameters to the current link across to the new controller
Update the new controller to send the audit event
Update the link on the triage page to point to our new route
Why did it change
We need a way of knowing when a user clicks on this link that doesn’t involve any client-side Javascript, as users with JS disabled or on old devices will be pushed towards this as a contact channel because they won’t be able to use the webchat.
Related links

Checklists

Environment variables or secrets

[ ] No environment variables or secrets were added or changed

[ ] Application configuration is up-to-date
[ ] Documented in the README
[ ] Added to deployment steps
[ ] Added to local startup config

Testing

How to review

@aenciso could you tidy up the commit history here please? It looks like there's a bunch of commits from one of Andrew's previous PRs here and it's pretty confusing to review.

@alex9smith Yes sorry, I branched off from Andrew's PR and forgot to rebase. Those commits have now been removed.


[SEDONA-507] RS_AsImage and RS_AsPNG could properly handle non-integral band data

Did you read the Contributor Guide?

Yes, I have read Contributor Rules and Contributor Development Guide

Is this PR related to a JIRA ticket?

Yes, the URL of the associated JIRA ticket is https://issues.apache.org/jira/browse/SEDONA-507. The PR name follows the format [SEDONA-XXX] my subject.

What changes were proposed in this PR?
RS_AsImage only produces PNG images for rasters with integral band data, and produces TIFF images for rasters with floating point band data. TIFF cannot be displayed on many mainstream browsers, so we should not use TIFF to visualize rasters.
This PR make RS_AsPNG work for all types of band data, so that RS_AsImage won't produce TIFF base64 output.

If the band data type is byte, we try converting it to PNG directly. This will preserve the original color of the raster if the raster is RGB or using a color table
If the raster has one single band, we normalize the band data to 0~255 and generate a grayscale image, with nodata pixels masked as transparent
Otherwise we use the color model to translate pixel values to RGB value, and generate an RGB image.

How was this patch tested?

Tested locally on various rasters to make sure that they are displayed properly.
Added a smoke test to make sure that it does not break when processing rasters with various band data types

Did this PR include necessary documentation updates?

No, this PR does not affect any public API so no need to change the docs.

@Kontinuation

With the normalization in this function, does a user still need to call RS_NormalizeAll to normalize an image (values not within 0 - 255) before calling AsImage?
When a raster has > 3 bands, I assume this will take the first 3 bands for visualization?

@Kontinuation

With the normalization in this function, does a user still need to call RS_NormalizeAll to normalize an image (values not within 0 - 255) before calling AsImage?
When a raster has > 3 bands, I assume this will take the first 3 bands for visualization?

No. The RS_AsImage will do the normalization by itself.
It depends on the color model of the raster. For RGB rasters it works properly, for rasters such as EuroSAT it does not work well. We may need to revisit how to deal with multi-band rasters later.

@Kontinuation What will happen exactly when it comes to EuroSat images?

@Kontinuation What will happen exactly when it comes to EuroSat images?

@Kontinuation What will happen exactly when it comes to EuroSat images?

The generated PNG image is mostly black, while visualizing one single band looks OK.


Miners have too many work parts

Currently miners are created using prototype.minerBody.js - This creates a creep with 1 carry part, and then as many work/move parts as affordable.
After controller level 2 (3?) it is possible to create miners with > 5 work parts which will mine out a source faster than it replenishes. To combat this, I will use the minerBody prototype unless available energy is > the cost of a 5 work cost miner. If so, then create a fixed body for miners with only 5 work parts. Some testing will need to be done to determine move/carry parts required.

Shoutout to slack user 'xndo' for inspiration and push to complete this issue ~


Small Suggestions

Hi,
for better reusability of your work, here are two small suggestions:

Deterministic preprocessing:
Sharing your preprocessed data lifted the need to solve this issue, but if you would add a random seed to here, running this script on any dataset will be enough to obtain the same preprocessed data.

Fewer magic numbers:
Hard coding resolutions as in here and here would cause unexpected errors if someone would like to run your code in different resolutions. The resolutions could instead be inferred from loaded image.

These are small points, but also easy failure modes I could spot so far. If you want, I can prepare a pull request!

Thanks for your suggestions, I have fixed them.


Starting a chant from chat

It would be really useful to give the ability to start a chant from a bot.
This could for instance allow to start chants through channel point redemptions.
I've tried sending /chant xy through say and raw, replicating how other commands like mods work but couldn't quite get it to work. It seems like the command is sent to Twitch and then not handled properly (no response, message doesn't show in chat).
I've made sure the bot is a mod in the channel so I'd expect it to work.

Okay, digging a bit deeper I found that it sends back a NOTICE of unrecognized_cmd. Guess that means it's just not supported on the side of Twitch?
Do you have any connections to Twitch to have it unlocked? Probably tricky as it's still experimental, right?

Kinda old issue, but /chant was for specific channels and it is now removed from all channels. 😢
Ref: https://twitter.com/TwitchSupport/status/1491139159183876098


Razer Firefly not working with Aurora

What are you experiencing an issue with?

[ ] Aurora
[ ] Aurora supported game, (Fill in the game)
[ x] Aurora Wrapper
[ ] Aurora Profile
[ ] Aurora supported device, (Fill in problematic devices)
[ ] Aurora Scripts
[ ] Aurora Updater
[ ] Aurora Lighting issue
[ ] Other, (Fill in another issue here)

What kind of an issue is it?

[ ] Crash
[ ] Performance problems
[ ] Visual bug
[ ] Localization issue
[ ] Enhancement suggestion
[ x] Device issue
[ ] Other, (Fill in another type of issue here)

Expected behavior:
Should be able to sync up my Firefly Mousepad together with my other peripherals (i have a Logitech G810 & a G300 (the old one)
Actual behavior:
Razer mousepad just uses it's default lighting
How often does this problem occur?

This problem occurs... everytime
Please describe the steps to reproduce this issue:
The issue can be reproduced by doing following steps:

What is the version of Aurora you are experiencing this issue with?

My version is... v.0.6.1
Does the previous version of Aurora have this issue?
Don't know, just got aurora set up
Please include any logs, screenshots, or files that are related to this issue:
There is nothing in the log.txt

Never mind, got it to work. Turns out it doesn't work with synapse 3.
Downloaded synapse 2 and worked flawlessly. Loving it


Top 10% of window is covered by white rectangle - no title bar, menu bar etc

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.86.1, 1.85.2
OS Version: Windows 10 Pro 19045.3930

Steps to Reproduce:

Open VS code (5 existing workspaces loaded into 5 windows)
Top 10% of window is covered by white rectangle. Covers title bar, menu bar and some area below this

@datamystic are you still seeing this issue on the latest version of VS Code?


Unable to watch the changes of the property '$' of an object which is used by filterFilter.

Unable to watch the changes of the property '$' of an object which is used by filterFilter.
//object to search
$scope.search = {'$': 'something...'}

//watch the object
$scope.$watch('search',
  function (newValue, oldValue) {
    //do action
    results = filter(list, search);
    ...
  }, true);

The "$" in the function filterFilter represents any property, however it represents built-in variable in the function equals(watch).
How to resolve the conflict between them?
filterFilter: https://github.com/angular/angular.js/blob/master/src/ng/filter/filter.js#L235
equals(watch): https://github.com/angular/angular.js/blob/master/src/Angular.js#L992
Smart-Table: https://github.com/lorenzofox3/Smart-Table/blob/master/src/stTable.js#L122

@javeme You could supplement your watch with value of this property directly...
//object to search
$scope.search = {
  '$': 'something...',
  // ... other filtering properties
};

function filterResults() {
  results = filter(list, search);
}
// watch the search object (except the `$` property)
$scope.$watch('search', filterResults, true);
// watch the `$` property
$scope.$watch('search.$', filterResults);

This would not work for situations where $ appears further down in the search object.
Perhaps this is another use case for https://github.com/angular/angular.js/pull/10096

@petebacondarwin Thanks for your solution, if we already know the bug we could bypass it. but it would be better If we can completely solve it.

Perhaps the easiest solution here would be to allow the "match any property" identifier symbol (currently $) to be configured on a filter by filter basis?
The filterFilter could have an extra parameter:
//object to search
$scope.search = {
  '%': 'something...',
  // ... other filtering properties
};

function filterResults() {
  results = filter(list, search, undefined, '%');
}
// watch the search object (including the `%` property)
$scope.$watch('search', filterResults, true);

Now the watch would pick up changes to the % properties. Would that be acceptable?
@gkalpak do you have any thoughts on this?

@petebacondarwin, your suggestion sounds reasonable. It should be easy to implement and not introducing any BC, so why not ?
#10096 would offer an equally good solution (but both can co-exist).
I am fine with both.
--
Admittedly, it wasn't a great choice to have use $ (which is considered Angular-proprietary) for something that we expect the user to specify.
If we considered this a bug and wanted to fix it, maybe we could add an extra check, wherever we check (and ignore) properties starting with $, to also check that the property isn't just $ (in which case it shouldn't be ignored).
(I'd be a little BC though.)
--
So, all things considered, I think @petebacondarwin's suggestion gives the best "value-for-money" :smiley:

Admittedly, it wasn't a great choice to have use $ (which is considered Angular-proprietary) for something that we expect the user to specify.

I did think of saying this but thought it would not be fair on the person who wrote the code - especially as I reviewed it :->

PRs welcome!

I did think of saying this but thought it would not be fair on the person who wrote the code

Nah...Angular has (almost) always taken pride in having a large community and a great team. There's no person in Angular, it's always a team. I didn't mean to be judgemental in any case :smiley:
--

especially as I reviewed it :->

Are you sure ? It seems that the special $ filter property has been there since the very very first commit to this repo.
I obviously spoke too soon. It's the other way around: $ as a special filter property was there before standardizing the convention of prefixing Angular-specific properties with $/$$.
(Useless info of the day: ng was nglr back then. Go figure !)


Make manifest_path actually configurable during boot

While integrating the latest RC into our project I discovered that configuring the manifest_path doesn't work as intended. When loading the Rails application I get
ruby/2.4.0/gems/railties-5.1.6/lib/rails/railtie/configuration.rb:95:in `method_missing': undefined method `faucet_pipeline' for #<Rails::Application::Configuration:0x007f553ce62da8> (NoMethodError)
        from /var/fejo-code/fejo-next/config/application.rb:94:in `<class:Application>'
        from /var/fejo-code/fejo-next/config/application.rb:20:in `<module:FejoNext>'
        from /var/fejo-code/fejo-next/config/application.rb:19:in `<top (required)>'

Reason for this it config/application.rb (which sets a custom manifest_path) is loaded before initializers are run. And since defining the config.faucet_pipeline is happening in a initializer changing it won't work.
Additionally I use the app.config inside the block to define the default manifest_path instead of writing in FaucetPipelineRails::Railtie.config.
Caveat
Previous tests for that feature were actually not testing the intended behavior
and thus we removed this test. And yes, we know the functionality is not tested
anymore.

Thank you, @railsbros-dirk 🙇

Released as 1.0.0.rc3 😸


Hang dumps

Adding functionality to create dumps for hang processes

@DrewScoggins I am not able to add reviewers

If you can fix the comments that I have LGTM

subject to comments

@DrewScoggins @danmosemsft  can you give another look ?

LGTM


Publish the npm provenance data

Is your feature request related to a problem? Please describe.
Describe the solution you'd like
Github recently allowed a new feature to publish the npm package provenance data linked to npm publish page. See the link in the additional context
Describe alternatives you've considered
There is no automated alternative for now.
Additional context
https://github.blog/2023-04-19-introducing-npm-package-provenance/

Is this a sufficient alternative to closing #3596 ? Also related to our discussion about managing dependencies #3470 .

Is this a sufficient alternative to closing https://github.com/ChainSafe/lodestar/issues/3596

No, #3596 is about mitigating supply-chain attacks on our dependencies.
This is just helpful for lodestar library users, so they can better trust the validity of our libraries (eg @lodestar/config)


CertManager integration

Aegis should know about certmanager-managed secrets and notify the workloads that are interested in them.
Note that this is an idea, and we need to discuss is carefully before we proceed.
We’ll likely need a controller to interact with both CertManager-initated secrets and also Aegis Safe; updating Aegis Safe as those secrets change.
Then it will be up to the workloads to react:
They can fetch and reapply the secrets
They can poll Aegis Safe and kill the pod if they detect a change in the secret.
Or Aegis Safe can relay a message to them
Or a totally separate controller can monitor Aegis Safe and restart the pods if needed.
Or Aegis safe can notify that controller
There are many options.
It’s better to keep things simple.
We should not move forward without desining things carefully.

Closing this.
Feels way too out of scope.
We can re-open if there is a community need for it.


ANGULAR: In Table view, request ability to uncheck multiple boxes before it implements the change

Table view allows you to select which columns you want displayed by selecting from pull down menu. When you want to add multiple variables, it allows you to check multiple boxes. But when you want to delete multiple variables, you can only uncheck one box at a time. See video available at the location below. It would be nice to be able to make all your selections in one shot. It's very minor and only a suggestion.
Private Zenhub Video

I haven't found a fix for this. But I have noticed that clicking on checkbox to deselect will sometimes close menu as show in the video. However, clicking on the line or word (such as 'origin') do not close the menu.


get column values for filters not working with clickhouse datasource

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

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

Superset version
0.23.3
Expected results
the filter result dropdown box should show the distint values of the column selected
Actual results
It just stuck there, no result show up.  On the server side get error:
Steps to reproduce
2018-03-23 12:46:10,563:ERROR:root:Code: 62, e.displayText() = DB::Exception: Syntax error: failed at position 52 (line 1, col 52): AS record_country
FROM record_innodb.mtrack_record_201108
 LIMIT 10000 FORMAT TabSeparatedWithNamesAndTypes. Expected one of: PREWHERE, WHERE, Comma, ORDER BY, SETTINGS, INTO OUTFILE, FORMAT, FROM, GROUP BY, WITH, HAVING, UNION ALL, token, LIMIT, e.what() = DB::Exception
Traceback (most recent call last):
  File "/home/centos/venv/lib/python2.7/site-packages/superset/views/base.py", line 65, in wraps
    return f(self, *args, **kwargs)
  File "/home/centos/venv/lib/python2.7/site-packages/flask_appbuilder/security/decorators.py", line 52, in wraps
    return f(self, *args, **kwargs)
  File "/home/centos/venv/lib/python2.7/site-packages/superset/views/core.py", line 1300, in filter
    config.get('FILTER_SELECT_ROW_LIMIT', 10000),
  File "/home/centos/venv/lib/python2.7/site-packages/superset/connectors/sqla/models.py", line 395, in values_for_column
    df = pd.read_sql_query(sql=sql, con=engine)
  File "/home/centos/venv/lib/python2.7/site-packages/pandas/io/sql.py", line 332, in read_sql_query
    parse_dates=parse_dates, chunksize=chunksize)
  File "/home/centos/venv/lib/python2.7/site-packages/pandas/io/sql.py", line 1092, in read_query
    result = self.execute(*args)
  File "/home/centos/venv/lib/python2.7/site-packages/pandas/io/sql.py", line 983, in execute
    return self.connectable.execute(*args, **kwargs)
  File "/home/centos/venv/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 2075, in execute
    return connection.execute(statement, *multiparams, **params)
  File "/home/centos/venv/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 942, in execute
    return self._execute_text(object, multiparams, params)
  File "/home/centos/venv/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1104, in _execute_text
    statement, parameters
  File "/home/centos/venv/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context
    context)
  File "/home/centos/venv/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1416, in _handle_dbapi_exception
    util.reraise(*exc_info)
  File "/home/centos/venv/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context
    context)
  File "/home/centos/venv/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute
    cursor.execute(statement, parameters)
  File "/home/centos/venv/lib/python2.7/site-packages/sqlalchemy_clickhouse/connector.py", line 209, in execute
    self._process_response(response)
  File "/home/centos/venv/lib/python2.7/site-packages/sqlalchemy_clickhouse/connector.py", line 340, in _process_response
    for r in response:
  File "/home/centos/venv/lib/python2.7/site-packages/infi/clickhouse_orm/database.py", line 162, in select
    r = self._send(query, settings, True)
  File "/home/centos/venv/lib/python2.7/site-packages/sqlalchemy_clickhouse/connector.py", line 102, in _send
    raise Exception(r.text)
Exception: Code: 62, e.displayText() = DB::Exception: Syntax error: failed at position 52 (line 1, col 52): AS record_country
FROM record_innodb.mtrack_record_201108
 LIMIT 10000 FORMAT TabSeparatedWithNamesAndTypes. Expected one of: PREWHERE, WHERE, Comma, ORDER BY, SETTINGS, INTO OUTFILE, FORMAT, FROM, GROUP BY, WITH, HAVING, UNION ALL, token, LIMIT, e.what() = DB::Exception

when run ngrep to trace the packet, find superset send the below query to clickhouse,it seems like postgresql syntax, it cause error on clickhouse
SELECT DISTINCT ON (record_country) record_country AS record_country FROM

Looks like an issue in sqlalchemy_clickhouse more than in superset

we have the same problems:
it diplay while the table is clickhouse table:
SELECT SUM(num) AS SUM(num)
FROM test_table
WHERE date >= toDate('2018-03-03')
  AND date <= toDate('2018-06-11')
ORDER BY SUM(num) DESC
LIMIT 10000;

but if it display like this:

SELECT SUM(num) AS `SUM(num)`
FROM test_table
WHERE date >= toDate('2018-03-03')
  AND date <= toDate('2018-06-11')
ORDER BY SUM(num) DESC
LIMIT 10000;

it works;
different between them is
SUM(num) has  `` or not
it is a bug, i think @mistercrunch

These seem like unrelated issues. The original issue described seems related to sqlalchemy_clickhouse not getting .distinct() right.
I have little context about the second issue but it seems like it has nothing to do with the original issue. Maybe something about sqlalchemy_clickhouse not getting aliasing/quoting right?

i  add replace fun to base.py
before:
class ClickHouseIdentifierPreparer(PGIdentifierPreparer):
def quote_identifier(self, value):
""" Never quote identifiers. """
return self._escape_identifier(value)
def quote(self, ident, force=None):
if self._requires_quotes(ident):
return '"{}"'.format(ident)
return ident
after:
class ClickHouseIdentifierPreparer(PGIdentifierPreparer):
def quote_identifier(self, value):
""" Never quote identifiers. """
return self._escape_identifier(value)
def quote(self, ident, force=None):
if self._requires_quotes(ident):
return '"{}"'.format(ident).replace(""","`")
return ident
and it work well!


⚠ Bofrost.de has degraded performance

In 9c8ba92, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 899 ms

Resolved: Bofrost.de performance has improved in 4a7b6a4.


svelte 5 peer dep

Hi sorry but I want to wait for Svelte v5 to be 100% stable and also want to use built-in runes. Might create a new branch and release a beta for Svelte v5 support


Response_transformer not working

Hi,
i'm trying to get the response transformer working but i dont get it :D
The test header is simply not set :/
My Config looks like
{
    "name": "myapi",
    "active": true,
    "proxy": {
        "preserve_host": false,
        "listen_path": "/api/*",
        "upstreams": {
            "balancing": "roundrobin",
            "targets": [
                {
                    "target": "https://mytarget"
                }
            ]
        },
        "strip_path": false,
        "append_path": true,
        "methods": [
            "POST"
        ]
    },
    "plugins": [
        {
            "name": "rate_limit",
            "enabled": true,
            "config": {
                "limit": "5-M",
                "policy": "local"
            }
        },
        {
            "name": "response_transformer",
            "enabled": true,
            "config": {
                "add": {
                    "headers": {
                        "test": "test"
                    }
                }
            }
        }
    ]
}

is my config wrong? or did i miss something?
thanks for your help

I also met this problem:(
It seems http response headers can not be changed after serveHTTP, so how janus do this?


fix(REST): fix type error on empty filters query

Fixes: https://github.com/DomDew/strapi-plugin-fuzzy-search/issues/73

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


pull request for e2e test at 12/24/2016 13:15:06

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


MacOSX10.14 Build Errors in CLM.cc

When building on macOS , I'm getting the following errors from CLM.cc related to not finding copy constructors.
g++ -Wextra -Wall  -O3 -Wno-long-long  -c -o src/lib/CLM.o src/lib/CLM.cc -I/usr/local/include/include -Iinclude/
src/lib/CLM.cc:246:13: error: no viable conversion from 'cv::Mat' to 'CvMat'
      CvMat wimg_o = wimg,sim_o = sim; IplImage im_o = im;
            ^        ~~~~
/usr/local/include/opencv2/core/types_c.h:464:16: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'cv::Mat' to 'const CvMat &' for 1st argument
typedef struct CvMat
               ^
/usr/local/include/opencv2/core/mat.hpp:1666:28: note: candidate template ignored: could not match 'vector<type-parameter-0-0, allocator<type-parameter-0-0> >' against 'CvMat'
    template<typename _Tp> operator std::vector<_Tp>() const;
                           ^
/usr/local/include/opencv2/core/mat.hpp:1667:35: note: candidate template ignored: could not match 'Vec<type-parameter-0-0, cn>' against 'CvMat'
    template<typename _Tp, int n> operator Vec<_Tp, n>() const;
                                  ^
/usr/local/include/opencv2/core/mat.hpp:1668:42: note: candidate template ignored: could not match 'Matx<type-parameter-0-0, m, n>' against 'CvMat'
    template<typename _Tp, int m, int n> operator Matx<_Tp, m, n>() const;
                                         ^

src/lib/CLM.cc:246:27: error: no viable conversion from 'cv::Mat' to 'CvMat'
      CvMat wimg_o = wimg,sim_o = sim; IplImage im_o = im;
                          ^       ~~~
/usr/local/include/opencv2/core/types_c.h:464:16: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'cv::Mat' to 'const CvMat &' for 1st argument
typedef struct CvMat
               ^
/usr/local/include/opencv2/core/mat.hpp:1666:28: note: candidate template ignored: could not match 'vector<type-parameter-0-0, allocator<type-parameter-0-0> >' against 'CvMat'
    template<typename _Tp> operator std::vector<_Tp>() const;
                           ^
/usr/local/include/opencv2/core/mat.hpp:1667:35: note: candidate template ignored: could not match 'Vec<type-parameter-0-0, cn>' against 'CvMat'
    template<typename _Tp, int n> operator Vec<_Tp, n>() const;
                                  ^
/usr/local/include/opencv2/core/mat.hpp:1668:42: note: candidate template ignored: could not match 'Matx<type-parameter-0-0, m, n>' against 'CvMat'
    template<typename _Tp, int m, int n> operator Matx<_Tp, m, n>() const;
                                         ^

src/lib/CLM.cc:246:49: error: no viable conversion from 'cv::Mat' to 'IplImage' (aka '_IplImage')
      CvMat wimg_o = wimg,sim_o = sim; IplImage im_o = im;
                                                ^      ~~
/usr/local/include/opencv2/core/types_c.h:327:1: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'cv::Mat' to 'const _IplImage &' for 1st argument
_IplImage
^
/usr/local/include/opencv2/core/mat.hpp:1666:28: note: candidate template ignored: could not match 'vector<type-parameter-0-0, allocator<type-parameter-0-0> >' against '_IplImage'
    template<typename _Tp> operator std::vector<_Tp>() const;
                           ^
/usr/local/include/opencv2/core/mat.hpp:1667:35: note: candidate template ignored: could not match 'Vec<type-parameter-0-0, cn>' against '_IplImage'
    template<typename _Tp, int n> operator Vec<_Tp, n>() const;
                                  ^
/usr/local/include/opencv2/core/mat.hpp:1668:42: note: candidate template ignored: could not match 'Matx<type-parameter-0-0, m, n>' against '_IplImage'
    template<typename _Tp, int m, int n> operator Matx<_Tp, m, n>() const;
                                         ^
3 errors generated.
make: *** [src/lib/CLM.o] Error 1

Use cvIplImage(im) and if you get this error error: no viable conversion from 'cv::Mat' to 'CvMat'
You can use cvMat(wimg)
Check my project if you get the other error.
https://github.com/GHLab/QT_FACE_TRACKER_DEMO


Fix pulse slice initialization

Takes too many slices to converge for number of photons in pulse vs number of laser slices.

Also:

Look at other dependencies for gain, like mesh resolution (nx, ny)
Initialization types for the crystal at some point: flat, exponential decay (1 vs 2 sides), outside data

Not doing the above yet (mesh resolution and crystal init types). Are changing alpha to cm, adjusting init of excited states.
Adding trap rule


Throws error when bucket name contains dot

Sounds like something to do with https://github.com/boto/boto/issues/2836#issuecomment-108791127

Did dropping in that .boto config file fix the error?


[CardHeader] paddingRight: 90px

Problem description
Hello,
Seems a little strange that padding right is set to 90px on CardHeader... Why is that? Kinda messes up the title on small screens. It can be overridden by textStyle so not a big problem
Thanks
Steps to reproduce
https://github.com/callemall/material-ui/blob/ec24c136a3a603d74e490e96edcd0c47b7c56680/src/Card/CardHeader.js
Versions

Material-UI:
React:
Browser:

@Taakn Have you checked how removing the padding affects small screens? It doesn't affect the desktops, as far as I have looked into it

@aahan96 For me removing the padding on small screens works fine. For desktop that doesn't cause any issues either way.

Okay, let me create a PR for it

The padding-right has proven to be necessary. I'm closing the issue.
Plus, the next branch is now using the flexbox layout engine. We do no longer use that padding hack.


Duplicate eventbridge name in sandbox and production

Environment information
System:
  OS: macOS 14.0
  CPU: (10) arm64 Apple M2 Pro
  Memory: 659.42 MB / 16.00 GB
  Shell: /bin/zsh
Binaries:
  Node: 20.5.0 - /usr/local/bin/node
  Yarn: 1.22.19 - /usr/local/bin/yarn
  npm: 9.8.0 - /usr/local/bin/npm
  pnpm: 8.15.5 - ~/Library/pnpm/pnpm
NPM Packages:
  @aws-amplify/backend: 1.0.0
  @aws-amplify/backend-cli: 1.0.1
  aws-amplify: 6.3.0
  aws-cdk: 2.141.0
  aws-cdk-lib: 2.141.0
  typescript: 5.4.5
AWS environment variables:
  AWS_DEFAULT_PROFILE = cloudteam
  AWS_STS_REGIONAL_ENDPOINTS = regional
  AWS_NODEJS_CONNECTION_REUSE_ENABLED = 1
  AWS_SDK_LOAD_CONFIG = 1
No CDK environment variables

Description

// EventBridge
const schedulePostFunc = backend.schedulePostHandler.resources.lambda;
const eventStack = backend.createStack("CommunityBoardEventBridgeLambdaStack");
new EventRule(eventStack, "HourlyRule", {
  ruleName: "CommunityBoardHourlyRule",
  schedule: Schedule.expression("cron(0 * * * ? *)"),
  targets: [new LambdaFunction(schedulePostFunc)],
});

When specifying the name of a rule like this, I want to include the appid etc. to avoid duplication.
Is there a way to use App ID in backend.ts?

Hey @rnrnstar2, thank you for reaching, this is currently being tracked on https://github.com/aws-amplify/amplify-backend/issues/1094. Do add a 👍 on the issue.
But you should be able to retrieve the environment information such as type of backend and the namespace using
// backend type
eventStack.node.tryGetContext("amplify-backend-type")

// namespace
eventStack.node.tryGetContext("amplify-backend-namespace")


"Invalid behavior: :lt.plugins.clojure/eval!" after initial setup (developer-install.md)

The specific error I get is this one:
Invalid behavior: :lt.plugins.clojure/eval!
TypeError: Cannot call method 'call' of undefined

I already tried to run lein uberjar as recommended here without success. I followed precisely the instructions given in developer-install, but maybe they are outdated?

@marcelocra Please try building the atom-shell branch – that's the working branch for the next release.

It worked, thanks!
Note: For it to work after I had previously built using the master branch, I removed both the LightTable directory as well as the .config/LightTable directory. Otherwise I would get the same error.

@marcelocra Great news! And thanks for the info about needing to cleanup.


replaced deprecated properties for RN 0.46+

fixes #691

@spezzino
According to Facebook, migrating from React.createClass should be done using 'create-react-class', not createClass():
https://facebook.github.io/react/blog/2017/04/07/react-v15.5.0.html#migrating-from-react.createclass
This PR also fixes the FacebookTabsExample: #710

@frevib ok, will add those changes too. When I submitted this PR, I only fixed the issue with ViewProps, because it was throwing errors at runtime

Nice work @spezzino, would be awesome to get this into the next release 🎉