fix: use user-defined dist folder for last-built-actions.json

Description
Fix hardcoded "dist" folder for 'last-built-actions.json'.
Related Issue
I suspect there are a few more of these, e.g. SSL certs, log forwarding SHA, etc.
Motivation and Context
app.manifest.yaml allows for custom dist folder but not all part of tool respect it.
How Has This Been Tested?

unit tests
hot patch + blackbox test: DEBUG=@adobe/aio-lib-runtime* npm run build

Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] I have signed the Adobe Open Source CLA.
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

Highly suspect. "Works" but the last-built-actions.json is now nowhere to be seen, even though DEBUG statements and additional hotpatched logs show that it is successfully read.

The reason it works is the same value, whatever it is ... is read and written to.  It actually gets placed in dist/dx-excshell-1/actions which is not the correct dir.  We want this build output file to be in the root of the dist/ dir and there is nothing in config to tell us where that is.
For now, we need to stick with a hardcoded location


README.md: Update/Strip upstream data

btw v2.1.0 does not work. It is installable, yes, but the "default folding" of top-level Excluded directories does not work. I've checked already the Project config, and the plugin's settings - all appear good

btw v2.1.0 does not work. It is installable, yes, but the "default folding" of top-level Excluded directories does not work. I've checked already the Project config, and the plugin's settings - all appear good

try version 2.2.0

Still doesn't 😅


Changing the parser to a context-free grammar approach

Opening a new issue to further discuss the comment in #164

I am planning to write a formal grammar for the config, but haven't taken the time to do it. Once this is done, writing the config parsing code using a separate library will be easier. Quite a few of them exist for Rust: pest and rust-peg seemed interesting, but a lot of alternatives also exist.

I've took a look at a few rust parsers, but hadn't seen either of those. My personal preference is to use parsers that use separate grammar files with dedicated specific syntax. In this case, pest looks like the best option by far. The reason I prefer this: it separates the concerns of defining a grammar from using the grammar in Rust - the grammar is more language-agnostic, and does not have to be concerned with computer syntax elements. You can see the different with rust-peg, which defines grammars in-line. Dedicated syntaxes are therefore much much more readable, which helps a lot when it comes to maintaining them. It does mean having to learn a new syntax, but my experience has been that they are very simple to learn, especially if you are used to regex.
Separating defining the structure from transforming it into a result is also probably more useful for a config parser like this, I think, because of how we don't necessarily want to do anything with the parsed result right away.
Example of a pest grammar (separate, dedicated PEG syntax):
num = @{ int ~ ("." ~ ASCII_DIGIT*)? ~ (^"e" ~ int)? }
    int = { ("+" | "-")? ~ ASCII_DIGIT+ }

operation = _{ add | subtract | multiply | divide | power }
    add      = { "+" }
    subtract = { "-" }
    multiply = { "*" }
    divide   = { "/" }
    power    = { "^" }

expr = { term ~ (operation ~ term)* }
term = _{ num | "(" ~ expr ~ ")" }

calculation = _{ SOI ~ expr ~ EOI }
WHITESPACE = _{ " " | "\t" }

Similar grammar in rust-peg (mixes grammar and resolution)
peg::parser!( grammar arithmetic() for str {
    pub rule expression() -> i64
        = sum()

    rule sum() -> i64
        = l:product() "+" r:product() { l+r }
        / product()

    rule product() -> i64
        = l:atom() "*" r:atom() { l*r }
        / atom()

    rule atom() -> i64
        = number()
        / "(" v:sum() ")" { v }

    rule number() -> i64
        = n:$(['0'..='9']+) { n.parse().unwrap() }
});

Admittedly, I don't know any rust so of course the second one is going to look more confusing. What I firmly believe though is that removing the burden of boilerplate and rust necessities from the grammar will make the grammar easier to work with.
As proof of how easy it is, here's a rough sketch of the swhkd/sxhkd syntax's core, from the top of my head:
main = {
    SOI ~
    content*
    ~ EOI
}
content = {
    | comment
    | binding
    | newline *
    }

// _ means it gets ignored in the parser
comment = _{ "#" ~ CHARACTER* }
// We can ignore whitespace in general. This is a special rule which is automatically inserted between every expression - if it is here, whitespace will always be ignored.
WHITESPACE = _{ " " | "\t" }

// Accept at least one modifier, plus a number of modifiers, plus a key
binding = { modifier ~ ("+" ~ modifier)* ~ "+" ~ key ~ comment? ~ NEWLINE ~
    // The ${} syntax ensures that whitespace is not ignored, unlike usual.
    ${WHITESPACE ~ command}
}

// Caret makes strings case insensitive
modifier = {
    ^"super"
    | ^"ctrl"
    | ^"alt"
    | ^"shift"
}

// Probably want to define the "key" rule in another file/import from a wayland library or however swhkd does it currently, and merge that rule with the rest of the grammar in rust rather than define it here. Alternatively - accept any string, then validate it in rust.
key = { ^<list of keys> }

// Parsing the command should be the shell's responsibility, so just send everything that isn't an unescaped newline to the shell.
command = { not_newline* }
// Uses a negative lookahead: if the following is not a newline, consume a character.
not_newline = {!unescaped_newline ~ ANY}
// Match a newline that has no escape char before it - but an escape char literal is fine.
newline = { !unescaped_escape_char "\n"
escape_char = {"\"}
// positive lookahead - match both or none.
escape_char_literal = {&escape_char ~ escape_char}
unescaped_escape_char = {!escape_char escape_char}

The above grammar should match
super + shift + enter # enter = return
    kitty

# file manager
super + shift + f
    pcmanfm

# web-browser
super + w
    firefox

I didn't write any of the parser and lexer so I'll just go ahead and ping the ones who did: @EdenQwQ @angelofallars

@Shinyzenith
Hello. I found this project idea as part of GSoC. I wonder what this means:

this idea plans to introduce a new parser with robust DSL rules by defining a formal grammar.
...
Create a new parser with proper parsing techniques

We need to create an EBNF grammar, that's clear. What about parser itself, should we write the parser manually (for example use recursive descent parser algo) or use existing tools for this, like pest, and not to reinvent the wheel?

@woojiq hi, I think it's best if we define and grammar and delegate parsing responsibilities to some other parser crate to not reinvent the wheel. However, if you can find some concrete reasons to not do so then feel free to explore such possibilities too.
Cc: @lavafroth

I took a brief survey back when I thought I ha time for this, and found the existing options pretty good. I can't remember which ones I looked at, but I doubt implementing a new one would be necessary (although it would be a great exercise!).
My other thoughts about this issue:

To handle {} multiple mapping syntax well, I struggled to define a CFG way. What i thought would be a better approach is to do multiple parsing approaches, where the first one only matches braces and spits out all the resulting mappings.
Is it worth writing a grammar that handles an entire file? Or do you separate each definition first and then parse them individually?


Deleting a screen fails

I am not able to delete a complete screen  or components within the screen such as forms, labels, fields, icons etc. it keeps on rotating as saving but deletion does not work.

@sheosanjay Can you point us to the sample that you are facing the issue.

@sheosanjay Since this issue was opened so long ago I assume you got past this problem, therefore I am closing the issue. If you are still having trouble, file an new issue. However, we only take issues here for sample code. If this is a support issue with the products, you should file a support request or post to one of the developer forums.

I am working on a spp which has 3 sp list as data source. I developed 2
screens and copied a third screen from my colleagues app. On copying the
screen, I found screen cannot be copied but form within a screen can be
copied. Later when I tried to edit the form it was taking longer time and
failed to open in edit  mode. This is the situation I am not able to edit
or delete the screen. If fields labels or forms are deleted from screen , I
cannot save the app..this is my challenge I stuck with.
On Fri, 9 Jul 2021, 11:56 pm Nava Kiran Buthukuri, @.***>
wrote:

@sheosanjay https://github.com/sheosanjay Can you point us to the
sample that you are facing the issue.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/PowerApps-Samples/issues/185#issuecomment-877375497,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMLDYBQ6RUJNR77AA2XJXYDTW45LXANCNFSM44KNJ6CQ
.


feat: Automatically rollover in rollover weekend

This change will automatically push the users dlc expiry to the next Sunday 15pm UTC if the user comes online within the rollover weekend (Friday, 15pm UTC - Sunday, 15pm UTC).
The video was taken with an adapted get_expiry_timestamp and is_in_rollover_weekend logic to provoke the rollover.
https://github.com/get10101/10101/assets/382048/1fd5e6ff-cea7-4f2c-8153-a7c51cc1d4ac
resolves #1123

@luckysori I've split up the responsibilities of the trading module in to separate modules. Please have a look at b6cd302d2129d5015e81c8b9a4de4ccf4790ccf6 and let me know what you think!


[Bash] read with -r to not mangle backslashes

As proposed by static analysis tool:
https://github.com/koalaman/shellcheck/wiki/SC2162

Closing these all out. Mind making all these changes in one pull request? It's easier to run through tests that way.


Add the ESCorpus-PE dataset

Add the "ESCorpus-PE: A speech emotional dataset in Spanish with Peruvian accent" dataset
Dataset: https://zenodo.org/record/5793223#.Yqjq9tJBxph

closed in #54


NimBLE/Host: Feature Multi Handle Value Notification

Added new feature to send and receive multi handle value notifications.
This PR attempts to add support to send and receive multi handle value notifications. This is part of Core spec v5.3 ATT_MULTIPLE_HANDLE_VALUE_NTF (Vol 3, Part F, <IP_ADDRESS>).
On Rx side, code is added to parse the PDU and send NOTIFY_RX events multiple times from stack to registered application.
On Tx Side, code is added to create PDU consisitng of multiple handle value length tuples and sent to att_tx.

Hi @sjanc,
Could you take a look at this please.

oh, and it would be nice if you could also add some unit tests for those (see  nimble/host/test/)

#AutoPTS run mynewt GATT/SR/GAN/BV-02-C

#AutoPTS run mynewt GATT/SR/GAN

@SumeetSingh19 These features are currently worked on in https://github.com/apache/mynewt-nimble/pull/1549, however, merging feature of sending multiple handle notifications would be helpful. I added some comments to this feature. Could you please extract only this one and submit? I think it can be done either here or in separate PR
FYI @sjanc @rymanluk


Sopport For rtl Language

I want to try it for rtl language like Arabic, but Seekbar is not change the direction as per language.

I forked this repo to support Arabic (might also work for other RTL languages but have only tested it with Arabic) because it wasn't working properly for me especially with the IndicatorStayLayout. Use setArabic(true) on your IndicatorSeekBar programmatically. Check it out here https://github.com/riocallos/IndicatorSeekBar/tree/feature/support-arabic.


Optional message acknowledgement

For e.g. one-shot commandline programs, it is useful to be able to wait for a message's response (either OK or an error). Currently, the message is fire-and-forget only.
However, many messages don't explicitly require such acknowledgements, so the mechanism should be optional.

MClient supports sequence numbers with acknowledgements now.


Bug: radio buttons get cleared when closing and re-opening modal

What kind of issue is this? (put 'x' between the square brackets)

[ ] Question. This issue tracker is not the place for questions. If you want to ask how to do
something, or to understand why something isn't working the way you expect it to, use
http://stackoverflow.com/questions/ask .
Provide working code, starting from http://jsfiddle.net/JNsu6/15/.
We monitor the tag featherlight.js.

[x] Bug report. If you’ve found a bug, you must provide a minimal example in a CodePen,
starting from http://jsfiddle.net/JNsu6/15/ .

[ ] Feature Request. Make sure there's no good way to do what you want first;
consider asking on http://stackoverflow.com/questions/ask first.

Check out the demo: http://jsfiddle.net/a2vek7f5/2/

Never mind. I didn't know about $.featherlight.defaults.persist = true;
It seems surprising that it's not the default.

Maybe it would be better to at least restore the initial "checked" values of radio buttons that existed upon page load.

Thanks for the feedback.
The persist option is there for this kind of thing. Otherwise we use jQuery's clone which duplicates most but not all state.


Use image as canvas background

Hi,
is there currectly any way to use image as an canvas background?

how can i add background image in react.(which prop do i have to use)


Fix tutorial docs

Thanks for a great and cool product!
I was going through the tutorial and got stumped.
I'd love to help you with one of them this time.
What I did

Fixed wrong import of YogaInitialContext in www/docs/index.md

Before

After

Thanks a lot 🙏


Sagecom F@st 3890V3 - {'code': 16777224, 'description': 'XMO_LOGIN_RETRY_ERR'}

Versions

Key
Value

Home Assistant version
2021.12.5

Integration version
"0.2.1"

Sagemcom F@st model
3890V3

Sagemcom F@st firmware (optional)
FAST3890V3_MAGYAR_sw<IP_ADDRESS>c-1

GUI ver
5.14.0

Describe the bug
Performed Manual installation.
Attempted to add an integration with authentication method 'md5' as described in Table of supported devices but it failed to login. Then changed to 'sha512' and it succeeded . but on the integration card I see an error ‘Failed to set up. See log’. This is the log entry (only one):
`This error originated from a custom integration.
Logger: custom_components.sagemcom_fast
Source: custom_components/sagemcom_fast/init.py:60
Integration: Sagemcom F@st (documentation, issues)
First occurred: 9:13:08 PM (1 occurrences)
Last logged: 9:13:08 PM
{'code': 16777224, 'description': 'XMO_LOGIN_RETRY_ERR'}
Traceback (most recent call last):
File "/config/custom_components/sagemcom_fast/init.py", line 60, in async_setup_entry
await client.login()
File "/usr/local/lib/python3.9/site-packages/sagemcom_api/client.py", line 265, in login
response = await self.__api_request_async([actions], True)
File "/usr/local/lib/python3.9/site-packages/sagemcom_api/client.py", line 235, in __api_request_async
raise UnknownException(action_error)
sagemcom_api.exceptions.UnknownException: {'code': 16777224, 'description': 'XMO_LOGIN_RETRY_ERR'}
`
I can play with coding a bit but had an issue while installing your package from pypi on Ububntu. 20
`pip install sagecom_api
ERROR: Could not find a version that satisfies the requirement sagecom_api (from versions: none)
ERROR: No matching distribution found for sagecom_api
`
have python 3.8.10
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
Give a clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.
[bug]

Thanks for reporting! Currently I don't have much time to spend on this, due to other projects, however it is good to track this here.

`pip install sagemcom_api

ERROR: Could not find a version that satisfies the requirement sagecom_api (from versions: none)
ERROR: No matching distribution found for sagecom_api

Looking at the error, are you sure you typed it correctly? It should be pip install sagemcom_api.

OMG... right! sagemcom_api.. got it.. will try to python it.. any short code example to start?

Managed to connect to my routed with sha512 hash only from a python script. With md5 it gives the error 'XMO_LOGIN_RETRY_ERR'. Deleted integration and added it again with sha512 hash. Now it is ok!  Not sure how it added with md5 before..
I noticed the  integration does not create any sensor for router but device_trackers for hosts only. Perhaps this is for 'feature request' but would be good to expose 'router':'home'|'unavailable' or 'wan0': 'down'. HA could try to reset power switch for router via zigbee or something.. Can not find proper XPATH url to get status of wan0.. Can you advice?

@done7k can I close this issue, and could you perhaps create a new one for your future request? (if there is no other open).
Currently I am not spending much time on this integration, however this would be more visible for other potential contributors.


Another Motion Sensor

Hi all, in my dump file my motion sensor has a different productCode "E1525" to the listed one "productCode" : "E1745". can this one be added please.
many thanks
}, {
"id" : "6c7ef29d-b9d4-4e65-b712-59086514330f_1",
"type" : "sensor",
"deviceType" : "motionSensor",
"createdAt" : "2022-11-13T12:20:12.000Z",
"isReachable" : true,
"lastSeen" : "2022-11-27T20:32:26.000Z",
"attributes" : {
"customName" : "Toilet motion",
"model" : "TRADFRI motion sensor",
"manufacturer" : "IKEA of Sweden",
"firmwareVersion" : "1.2.214",
"hardwareVersion" : "1",
"serialNumber" : "000B57FFFE96AC79",
"productCode" : "E1525",
"batteryPercentage" : 52,
"isOn" : false,
"permittingJoin" : false,
"otaStatus" : "upToDate",
"otaState" : "updateComplete",
"otaProgress" : 0,
"otaPolicy" : "autoUpdate",
"otaScheduleStart" : "00:00",
"otaScheduleEnd" : "00:00",
"sensorConfig" : {
"scheduleOn" : false,
"onDuration" : 180,
"schedule" : {
"onCondition" : {
"time" : "17:00"
},
"offCondition" : {
"time" : "09:00"
}
}
}
},
"capabilities" : {
"canSend" : [ "isOn" ],
"canReceive" : [ "customName" ]
},

The ProductCode is not used anywhere. It's merely a device identification.
We use the deviceType in order to detect if anything is supported.
It seems to me that this motion sensor should already be accepted by the current client

This Motion Sensor does show up but does not change state, it did change state under homekit.

Have you tried restarting the add on?
Do the logs indicate a state change?

addons was restarted at 18:30, here are the entries from the log
2022-11-29 18:31:15.718 DEBUG 63 --- [or-http-epoll-3] d.d.iot.dirigera.client.mqtt.MqttBridge  : Create device: id=6c7ef29d-b9d4-4e65-b712-59086514330f_1, name=Toilet motion, category=SENSOR, type=MOTION_SENSOR 2022-11-29 18:31:15.720 DEBUG 63 --- [or-http-epoll-3] d.d.iot.dirigera.client.mqtt.MqttBridge  : Publish message to MQTT: topic=homeassistant/binary_sensor/d705fc32-eea6-4dde-8f06-355b36306149_1/6c7ef29d-b9d4-4e65-b712-59086514330f_1/config, payload={"object_id":"6c7ef29d-b9d4-4e65-b712-59086514330f_1","unique_id":"6c7ef29d-b9d4-4e65-b712-59086514330f_1","name":"Toilet motion","device":{"identifiers":["000B57FFFE96AC79"],"manufacturer":"IKEA of Sweden","model":"TRADFRI motion sensor","hw_version":"1","sw_version":"1.2.214","name":"Toilet motion","via_device":"d705fc32-eea6-4dde-8f06-355b36306149_1"},"payload_on":"\"ON\"","payload_off":"\"OFF\"","state_topic":"homeassistant/binary_sensor/d705fc32-eea6-4dde-8f06-355b36306149_1/6c7ef29d-b9d4-4e65-b712-59086514330f_1/state","availability":{"topic":"homeassistant/binary_sensor/d705fc32-eea6-4dde-8f06-355b36306149_1/6c7ef29d-b9d4-4e65-b712-59086514330f_1/availability","payload_available":"\"ONLINE\"","payload_not_available":"\"OFFLINE\""}}, factory=MotionSensorEventHandler, deviceId=6c7ef29d-b9d4-4e65-b712-59086514330f_1, deviceType=MOTION_SENSOR, deviceCategory=SENSOR 2022-11-29 18:31:15.724 DEBUG 63 --- [or-http-epoll-3] d.d.iot.dirigera.client.mqtt.MqttBridge  : Publish message to MQTT: topic=homeassistant/binary_sensor/d705fc32-eea6-4dde-8f06-355b36306149_1/6c7ef29d-b9d4-4e65-b712-59086514330f_1/state, payload="OFF", factory=MotionSensorEventHandler, deviceId=6c7ef29d-b9d4-4e65-b712-59086514330f_1, deviceType=MOTION_SENSOR, deviceCategory=SENSOR 2022-11-29 18:31:15.727 DEBUG 63 --- [or-http-epoll-3] d.d.iot.dirigera.client.mqtt.MqttBridge  : Publish message to MQTT: topic=homeassistant/binary_sensor/d705fc32-eea6-4dde-8f06-355b36306149_1/6c7ef29d-b9d4-4e65-b712-59086514330f_1/availability, payload="ONLINE", factory=MotionSensorEventHandler, deviceId=6c7ef29d-b9d4-4e65-b712-59086514330f_1, deviceType=MOTION_SENSOR, deviceCategory=SENSOR
Monitoring with MQTT explorer and no changes when i active the motion sensor (except the toilet light coming on as setup in Dirigera hub) and no new lines in log for motion

Unfortunately, the motion sensor does not work for me either...  It has the attribute "isOn", whose status is reported to HA. However, for my sensor, it is always set to false. Also, no events are coming in over the websocket, indicating that the sensor has detected something.

Yeah I noticed this as well. Currently in the process of capturing traffic between Hass and the gateway. Since homekit does work

So I've been looking at it but it seems the device that can be queried from the rest API isn't updating for some reason.
I've seen some traffic on another port (I believe 8000) but that's the homekit integration which does update.
I'll continue to look into it but atm I'm at a loss about why this sensor isn't updating

Is there any chance to write an client to operate the HomeKit interface?

Well that's what home assistant is already doing with the 'Homekit controller' integration.
It is however not a foolproof solution.
What I did notice is that the motion sensor is the only one that has canSend capabilities and I suspect that's what we should be looking into.

I did find a project that does some homekit stuff for Java here
However, I'm not sure if we want to go that route since that is also already in the home assistant core.

I am currently working on a Homekit interface. Even if Home Assistant already provides this feature. However, I myself don't use Home-Assistant (except to test stuff in this project). HAP-Java, was a good starting point. Unfortunately, it only offers the possibility to implement Homekit Accessories (server mode), not to connect one (client mode). Anyway, i found this gem: hap-client. It's a NodeJs-based implementation of a Homekit client. Yet, porting to Java is quite tricky. After a week of repeating my crypto lectures, i have successfully paired with the Dirigera using its Homekit interface. The demo is available at HomeKit.java. Be cautious, after pairing there is no code to unpair. Hence, I keep resetting the Dirigera from time to time, which leads to losing all settings on the Diregera, including paired devices.

I asked the reddit community of the Tradfri if anyone knew why it is not being updated on the WS or Restful API and this is the response I got:

That sounds like a bug in the Dirigera, the sensor itself doesn’t expose an API (except of course ZigBee) and can’t really be queried as it’s a battery device. It’s up to the hub to cache the last reported state and present that via an API.
One advise, if you’re trying to use this programmatically ditch the Dirigera - their API sucks and isn’t really open or documented. Install ZigBee2MQTT with something like the Sonoff ZigBee 3.0 dongle and use MQTT to control it programmatically as MQTT is open and well documented protocol. Another option is to use the old hub, the Tradfri Hub, which uses COAP for it’s API. While COAP is an slow, ancient protocol at least it’s well documented. Using WS for controlling smart devices is very bad idea, the entire industrial IoT industry uses MQTT for a reason.
Resources:
https://aws.amazon.com/what-is/mqtt/
https://coap.technology/
https://www.hivemq.com/blog/understanding-the-differences-between-mqtt-and-websockets-for-iot/
https://www.hivemq.com/blog/mqtt-vs-coap-for-iot/


Use dict getattr to fix dir() behavior in Python 3

Description
Resolves #5802
Following this python doc guidance adding example of including a "__dict__" response in a classes getattr() method. I've updated only GeneratePython.h and used it to change one example file, PyEngineProperties.C to get feedback from others.
This fixes behavior of dir(EngineProperties()) for example but I still wind up seeing some error output regarding missing "__class__" which suggests there is more wrong with our classes than we understand.
% ./bin/visit -cli -nowin
Running: cli -dv -nowin
Running: viewer -dv -nowin -noint -host <IP_ADDRESS> -port 5600
>>> dir(EngineProperties())
Could not find method with name `__class__`
['GetDynamicLoadBalancing', 'GetLoadBalancingScheme', 'GetNumNodes', 'GetNumProcessors',
'GetNumProcessorsUsingGPUs', 'Notify', 'SetDynamicLoadBalancing', 'SetLoadBalancingScheme', 'SetNumNodes',
'SetNumProcessors', 'SetNumProcessorsUsingGPUs']

Type of change

[x] Bug fix
[ ] New feature
[ ] Documentation update
[ ] Other

How Has This Been Tested?
Manually, locally for now on my macOS system.
Checklist:

[ ] I have followed the style guidelines of this project.~~
[ ] I have performed a self-review of my own code.~~
[ ] I have commented my code where applicable.~~
[ ] I have updated the release notes.~~
[ ] I have made corresponding changes to the documentation.~~
[ ] I have added debugging support to my changes.~~
[ ] I have added tests that prove my fix is effective or that my feature works.~~
[ ] I have confirmed new and existing unit tests pass locally with my changes.~~
[ ] I have added new baselines for any new tests to the repo.~~
[ ] I have NOT made any changes to protocol or public interfaces in an RC branch.~~
[ ] I have assigned reviewers (see VisIt's PR procedures for more information).~~

@biagas and @cyrush I wonder if you could take a quick look and let me know what you think.

I think this looks good Mark.

Hacking a call to PyType_Ready() like so...
NewEngineProperties(int useCurrent)
{

#warning REMOVE ME
{
    static bool initialized = false;
    if (!initialized)
        PyType_Ready(&EnginePropertiesType);
    initialized = true;
}
.
.
.

Does not improve behavior w.r.t. error message...
Could not find method with name `__class__`

Or with exception with help()

I am building my own teeny, tiny example of a custom object to see if I can duplicate behavior with VisIt CLI objects. I haven't been able to so far but hope to sometime today.

@biagas and @cyrush this is mostly a regen of python attr stuff to add response in getattr for "__dict__" member. This fixes behavior of dir() on an instance of an attr object. Help still doesn't work and more investigation is needed.

@biagas and @cyrush the code you originall reviewed hasn't changed. I added several test .py files in src/test/tests/unit that involved removing uneeded imports for os, adding some clarifying comments and in default_methods.py adding a test for WriteScript as well as making the logic there do bonified test result checking as opposed to simply just executing some python calls and exiting (which does test if the calls somehow error out but doesn't test their actual behaior).


Default group doesn't exist on ubuntu bionic

Affected Puppet, Ruby, OS and module versions/distributions

Puppet: 5.5.10
Ruby: 2.4.4
Distribution: Ubuntu Bionic
Module version: 3.4.-

How to reproduce (e.g Puppet code you use)
Any use
What are you seeing
/etc/logrotate.conf gets created with su root syslog. This does not exist in Ubuntu Bionic (as provided by AWS images anyway)
What behaviour did you expect instead
Use an existing group instead.

This is still an issue.  Did you ever find a solution?

I think someone needs to submit a PR :)
Although according to my research, the problem is with Focal and up: it switches to "su root adm", while Bionic still uses "su root syslog".
In Bionic, it looks like the syslog group is created by the rsyslog package:
./info/rsyslog.postinst:	adduser --system --group --no-create-home --quiet syslog || true

in Focal and above, I don't think rsyslog is installed by default, since journald is sufficient for many installations.  more exact research is probably needed.


Idea : Use LZ-String for better compresson

I'm looking on the project since the first day, I also started a similar project in summer but due to my exams, I couldn't complete it.
I used LZ-String from http://pieroxy.net/blog/pages/lz-string/index.html then used base64 to make it url safe, after this project I tested and found that LZ-String is giving better compression than any other lib.
So, I think it would be a good idea to use LZ-String

Is it smaller for longer strings? This is lzw, and it says:

For performace comparison, I use LZMA level 1 as a comparison point.
For strings smaller than 750 characters, this program is 10x faster than LZMA level 1. It produces smaller output.
For strings smaller than 100 000 characters, this program is 10x faster than LZMA level 1. It produces bigger output.

What I care about is strings in the 3k range

My initial tests (the standard pages on itty.bitty)
Size of sample is: 8635 https://codepen.io/jnjitkoff/pen/NzxNjq edit.js:186 Size of compressed sample is: lzs:6116 lzma:5168 edit.js:184 Size of sample is: 2708 https://codepen.io/jnjitkoff/pen/wXbvMm edit.js:186 Size of compressed sample is: lzs:2368 lzma:1956 edit.js:184 Size of sample is: 7048 https://codepen.io/jnjitkoff/pen/XYrzGe edit.js:186 Size of compressed sample is: lzs:4988 lzma:3944 edit.js:184 Size of sample is: 1139 https://codepen.io/jnjitkoff/pen/RJbxeW edit.js:186 Size of compressed sample is: lzs:676 lzma:644
If base64 encoding (for the url) were not required this would be excellent (with significant space saving). But with it, it is almost always larger :(

Got it.
When I tested, i forgot about base64.
In Future, I'll let you know if I found any useful libraries which can be used in this project.
Thank You.

Thank you for the recommendation :) I got very excited for a minute until I remembered, too. I'm still looking at Brotli as an alternative, but there aren't any good JS implementations.

@alcor did you find any JavaScript implementation of brotli?
I found a repo, but it's not maintained for a year, https://github.com/devongovett/brotli.js/

And I just found another implementation in haxe , https://github.com/dominikhlbg/BrotliHaxe
Which also has a JavaScript version , https://github.com/dominikhlbg/BrotliHaxe/blob/master/javascript/brotli.js

287 KB is a lot to handle :( I'm trying to keep things small. I'll give it a try though. If the space savings are good enough, it might be worth it.

What if you optimize the strings to be compressed according to the length?
like smaller to lzstring and the others to the default?


Enable or disable a task using a global param condition, without a default branch

Search before asking

[X] I had searched in the issues and found no similar feature requirement.

Description
Currently, the only way we can enable/disable a specific task via a condition on global params is using a switch. However, a switch requires a default branch. My current workaround is having a dummy task as a default, but this makes the DAG unnecessary cluttered. It would be nice if either the default branch for switch was optional, or some other kind of task could support this use case.
Use case
Let’s say I have a cleanup_task, and I want it to execute only if the global param cleanup is true. Currently, I do the following:
Switch(
name=“cleanup_task_switch”,
condition=SwitchCondition(
condition=“${cleanup} == ‘true’”,
Task=cleanup_task,
),
Default(
task=dummy_task
)
)
I’m looking for a way to eliminate the need for a dummy_task so that I can simply have something like this:
Switch(
name=“cleanup_task_switch”,
condition=SwitchCondition(
condition=“${cleanup} == ‘true’”,
Task=cleanup_task,
),
)
(as evident from my example, I'm generating my DAGs using python).
Related issues
A related discussion: https://github.com/apache/dolphinscheduler/discussions/12426
Are you willing to submit a PR?

[X] Yes I am willing to submit a PR!

Code of Conduct

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

+1 i think this is a good feature

@frouhi looking good, I see you want to do by yourself. As far as I know, the limited of switch task should have default branch is  in switch task parameter valid function, and it is in Java codebase, so it is mean this is not only the python code change for this PR. If you need any help, please ping me in GitHub. thanks

Good feature, we can make the Default as optional.
if(conditionA) {
    go taskA
    return
}

if(conditionB) {
    go taskB
    return
}

if(Default != null) {
    go Default
    return
}

cc @caishunfeng

Do you need any help @frouhi? Are you still WIP in this issue?

Thanks for following up @zhongjiajie,
I'm still waiting for approval from my organization to commit to this repo (this is an IP related requirement in the company I work for).
Can you maybe give me another week, if it doesn't come through I'll reach out to you. When it comes through, I think I have a general idea for the Java code causing this issue, but I'll confirm the details with you.
Thanks

Hi @frouhi  How's it going?

Hi @frouhi, FYI in https://github.com/apache/dolphinscheduler/pull/12779 we just separate our Python API code in to an independent repo, named https://github.com/apache/dolphinscheduler-sdk-python, which mean we should both add a PR to https://github.com/apache/dolphinscheduler for java code, and to https://github.com/apache/dolphinscheduler-sdk-python for python one
And you can see more detail from https://github.com/apache/dolphinscheduler-sdk-python/pull/9 and https://github.com/apache/dolphinscheduler/pull/12871

Hi @frouhi  How's it going?

Still pending :( I'll try to give an update here soon.

Hi @frouhi, FYI in https://github.com/apache/dolphinscheduler/pull/12779 we just separate our Python API code in to an independent repo, named https://github.com/apache/dolphinscheduler-sdk-python, which mean we should both add a PR to https://github.com/apache/dolphinscheduler for java code, and to https://github.com/apache/dolphinscheduler-sdk-python for python one
And you can see more detail from https://github.com/apache/dolphinscheduler-sdk-python/pull/9 and https://github.com/apache/dolphinscheduler/pull/12871

Got it. Thanks for letting me know. Will do.

Hi @frouhi are you still here?

Sorry about the delay! This task completely slipped under my radar.
my team ended up not adopting dolphin (although, personally, I think its amazing, and hope to use it at some extend in the future)! but that meant I was pulled in a different direction, and haven't had time to work on this .
if someone has time to pick this one up, I'd appreciate it! otherwise, I'll try to wrap it up by mid March.
Thanks for understanding.

Sorry about the delay! This task completely slipped under my radar.
my team ended up not adopting dolphin (although, personally, I think its amazing, and hope to use it at some extend in the future)! but that meant I was pulled in a different direction, and haven't had time to work on this .
if someone has time to pick this one up, I'd appreciate it! otherwise, I'll try to wrap it up by mid March.
Thanks for understanding.

Well, it is ok. could you share what tool do you choose in the end? and why do you thing it is better than dolphinscheduler and your team want to choose it instead of dolphinscheduler?


Audit worldwide organisations

Move AuditTrail out of the Edition namespace
We want to be able to create audit trails for non-editionable models.
There is an existing audit trail implementation that is only used for
editionable models. However, as it is quite generic we want to repurpose it so
that it can be used for both non-editonable and editionable models.
This moves the AuditTrail concern out of the Edition namespace.
The alert! method of the AuditTrail is possibly non-generic, this will be
refactored or removed  at a later point.
Include the AuditTrail concern in WorldwideOrganisation
This adds the AuditTrail concern to the WorldwideOrganisation model. From
this point, any create or update events will be recorded as Versions.
AuditTrail currently requires a state. Instead, we fall back to nil if
state is not set.
Create initial audits for worldwide organisations
Worldwide organisations will be audited from this point onwards. However,
before this time, we have no way of knowing what changes were made or by whom.
This adds a version with an initial event type to all worldwide
organisations. We can then handle this in the UI in an appropriate way.
Show an audit trail for worldwide organisations
Now that we create an audit trail for worldwide organisations, we want to
display the history on the admin page.
ViewComponents for editionable models already exist. But, because these contain
edition specific logic, rather than modifying them, we want to create separate
ViewComponents for non-editionable models .
This adds a paginated audit trail alongside the details of the worldwide
organisations. Any initial audits are shown as "No history before this time" by
"User (unknown)"

⚠ This repo is Continuously Deployed: make sure you follow the guidance ⚠
Follow these steps if you are doing a Rails upgrade.

This all looks good to me 👍
However, stepping back from this PR and given what I've discovered in this Trello comment, I'm wondering that if the whole approach of moving the about-us CorporateInformationPage fields into the WorldwideOrganisation model is being called into question, then perhaps the changes in this PR may no longer be required. /cc @JonathanHallam
Otherwise I've made one minor suggestion inline.
Given my comment above and that I was involved in the initial work on this, it might be sensible for someone else to review the PR, so I'm not going to approve it for now even though it's fine!

Ah yes, I see. Perhaps this can be converted back to a draft while we gather more information.

@jkempster34:

However, stepping back from this PR and given what I've discovered in this Trello comment, I'm wondering that if the whole approach of moving the about-us CorporateInformationPage fields into the WorldwideOrganisation model is being called into question, then perhaps the changes in this PR may no longer be required.

I chatted with @JonathanHallam earlier and he's confident that this is the right direction, so my concern above is no longer a blocker for getting this merged.

Given my comment above and that I was involved in the initial work on this, it might be sensible for someone else to review the PR...

I think this ☝ is still true though - worth getting another set of eyes on it - and getting answers to all your questions.

@ollietreend Hi Ollie, would you mind taking another look at this work please?

@ollietreend Great thanks,
If performing a two stage deployment, we would be missing an audit if a user makes a change before part 2 is deployed. I'm not sure if that's a huge problem TBH, and perhaps better than misordered audits if a user makes a change before the migration has run in a one-stage deployment.
In terms of design, how do you feel about "No history before this time" ..."user (unknown)". James suggested another approach here that's worth considering.
Once we have the above figured out, I'm happy to open another 2 PRs for each stage (if thats the agreed direction)!


GitHub Release 0.3.0

Please release officially 0.3.0, to denote the change in the bower.json file.

Please add a pull request, or I  can add you as a contributor if you'd like.

@agrublev - I would like to become a contributor if you would grant me permission. I really like this project and have been using it for some time. One of my latest projects will be using this in Angular 1.3.

+1

Done and Done!!!

Thanks


Search query's keywords in Cyrillic not working

Hi, I noticed that when using the API, queries in Russian alphabet are not working. Any way to make this work?

Good


Efficiency: np.fromiter instead of np.array

Hello Guilherme!!! Very nice repo! I am trying to use it for a little project of mine! ❤🔥
Replacing np.array with np.fromiter makes us spare up to ~20% time in the array creation.
It's little, but the function prepare_doc gets spammed... 🤗
A famous man once said: _"a single spark can start a prairie fire"_🛠
I guess that when the input is a list of numbers, this approach eats some overhead, because np.array is supposed to work with any kind of object while np.fromiter is more specific of iterables, such as lists.
It's kind of black magic, I found it out while trying to speedup a pipeline not so long ago!
Look:
import numpy as np
import time
from scipy.stats import wilcoxon

for n in [10**x for x in range(1, 5)]:
    method_array = []
    method_fromiter = []
    for k in range(100000):
        token_list = np.random.randint(0, 65535, size=n, dtype=np.uint16).tolist()
        start_time = time.time()
        np.array(token_list, dtype=np.uint16)
        method_array.append(time.time() - start_time)
        start_time = time.time()
        np.fromiter(token_list, dtype=np.uint16, count=len(token_list))
        method_fromiter.append(time.time() - start_time)
    _, p = wilcoxon(method_array, y=method_fromiter, zero_method='zsplit', alternative='greater') # alternative hypothesis: time of method_array >= time of method_fromiter
    print(n, p)

Output:
10 0.4773584925300637
100 0.4176699785461047
1000 0.00010255560716102062
10000 2.0292562600434947e-305

The times are ~ identical for lists of hundreds of tokens but np.array gets slower for lists > 1000 tokens and this result is statistically significant (low p-value) 😮
Launch your test suit before merging because I can not run it on windows and conda, even before the changes 😭

Hi Giorgio! Glad you like it and hope it can be useful :)
Thanks for the tip, I've added it elsewhere in the codebase as well


update ubi images registry.access.redhat.com/ubi8/ubi-minimal from 8.5 to 8.6

Description
update ubi images registry.access.redhat.com/ubi8/ubi-minimal from 8.5 to 8.6
Motivation
Close the bot PR's
Solve tech-debt

@fabianvf / @jmrodri any reason for we do not move with this one?
I am trying to clean up the bots PR's

Merging since there are 3 lgtm's


Add support for Vault KV secrets engine v2

This PR builds on top of https://github.com/heetch/confita/pull/84 (thanks @mopemope!), but completely separates the handling of Vault KV secret engine v1 and v2 to ensure that no breaking changes are introduced for v1 users, for example when asking for the secret with key "data".
This PR also

adds a test for the v2 backend, also adding a newer Vault version in CI (not the newest one, only the oldest one that leads to our Vault backend v1 implementation not working anymore)
changes the tests to use "data" as key to make sure no handling of "data" in the implementation breaks that

ℹ In the future it could be nice to have both secret engines handled by one backend, but it might require a bit more work, similar to what the Vault CLI does here: https://github.com/hashicorp/vault/blob/28fc7714655b34d700150f8f81589013d6a07e55/command/kv_get.go#L94-L147
Background info:

Secrets engine v1 API: https://www.vaultproject.io/api-docs/secret/kv/kv-v1#read-secret
Secrets engine v2 API: https://www.vaultproject.io/api-docs/secret/kv/kv-v2#read-secret-version
v0.10.0 release notes mentioning the "complete backend revamp" and introduction of versioned KV: https://github.com/hashicorp/vault/blob/00dfb97d67bd9eac5661b0ec62695b2c19e166cf/CHANGELOG.md#0100-april-10th-2018

The CI jobs only failed because the Vault Docker container didn't start for some of the build jobs, but 1. not consistently for the PR and push builds and 2. both builds worked in another branch with the same changes recently, so I attribute the failures to issues with the Vault Docker container on Travis CI. Merging.


Changing color of the landmarks

Hi. Thank you for the repo.
I wanted to ask how can I change the color of landmark points and tesselation from white to something else. Same for the lines, how can I change it from red to some other color.
I tried adding the following to the TemplateBuilder.cs but didn't work.
        Color32[] colors = new Color32[VertexCount];
        for (int i = 0; i < VertexCount; i++)
        {
            colors[i] = Color.red;
        }
        mesh.colors32 = colors;

Actually, I am not even sure how to use TemplateBuilder because we already have templates. How to run it or remake templates? Not sure why we need a template and shader etc. Kind of confused without the documentation.
Will appreciate your help. Thank you!

The shader doesn't use the vertex colors. You have to modify the following line in the shader instead.
https://github.com/keijiro/FaceLandmarkBarracuda/blob/main/Assets/Shader/Visualizer.shader#L22

The shader doesn't use the vertex colors. You have to modify the following line in the shader instead.
https://github.com/keijiro/FaceLandmarkBarracuda/blob/main/Assets/Shader/Visualizer.shader#L22

Thank you, that helped solve my issue.
I have one more question, how can I modify thickness or size of the drawn points and lines?

You can't change them easily because the graphics APIs doesn't support drawing lines with thickness (you have to draw triangles to construct thick lines).
I'm closing this issue now as the question is not related to this project (that's a general question about graphics APIs and shaders). Please reopen it for further issues on this specific project.

All right. Thank you for the help!
Are you planning to make any documentation for this project? I want to understand everything you did and included in the project from scratch.

You can't change them easily because the graphics APIs don't support drawing lines with thickness (you have to draw triangles to construct thick lines).
I'm closing this issue now as the question is not related to this project (that's a general question about graphics APIs and shaders). Please reopen it for further issues on this specific project.

All right. Thank you for the help!
Are you planning to make any documentation for this project? I want to understand everything you did and included in the project from scratch.

I did a presentation but only in the Japanese language.
https://www.youtube.com/watch?v=dMgm4ZYfaUI
Please don't expect more from me in English as I can't speak English. I'd recommend looking for presentations/articles from advocates in the English regions.

I did a presentation but only in the Japanese language.
https://www.youtube.com/watch?v=dMgm4ZYfaUI
Please don't expect more from me in English as I can't speak English. I'd recommend looking for presentations/articles from advocates in the English regions.

I understand. Thank you for all the help!


printBase64Image (Android)

Add support for printing images from a base64 encoded string.

Please review and let me know how it looks.  I was unable to add functionality for iOS as I don't have a way to develop on iOS right now.

Thanks @calculusdev .  I added a note to the documentation regarding the performance concerns.


RangeError in /clan/12-mutineers-8ylc9r0r

Error in ClashLeaders
RangeError in /clan/12-mutineers-8ylc9r0r
Maximum call stack size exceeded
View on Bugsnag
Stacktrace
webpack:///node_modules/vue/dist/vue.esm.js:674 - new ct

View full stacktrace
Created automatically via Bugsnag

An error linked to this issue has been marked as fixed in Bugsnag
RangeError in /clan/freedomfighters-pylgcu2p


A cool application is incomplete without offline feature

Need to implement Service Worker in this application.
Not really sure about what features can be there in offline mode but for now installing it as an application on the phone looks cool too.

Hi, if this is still pending, I'd love to pick it up.

Hi, if this is still pending, I'd love to pick it up.

@rajrajhans Sure! Assigning it to you.

@rajrajhans Sure! Assigning it to you.

Hey @rajrajhans!
Thanks a lot for contributing to this project. This feature actually makes the project even more accessible and in my opinion with some more work, we can actually make this a fully-fledged offline app too.
Merging this. 🚀

Hey @rajrajhans!
Thanks a lot for contributing to this project. This feature actually makes the project even more accessible and in my opinion with some more work, we can actually make this a fully-fledged offline app too.
Merging this. 🚀

Definitely! We can implement aggressive caching policies to make it a fully fledged offline app.
Although, we must be careful to not cache resources that might change later since if those resources exist in the cache, there will not be GET request made, and the user won't be able to see the latest changes.

Definitely! We can implement aggressive caching policies to make it a fully fledged offline app.
Although, we must be careful to not cache resources that might change later since if those resources exist in the cache, there will not be GET request made, and the user won't be able to see the latest changes.


functools.partial will be a method descriptor in future

/srv/homeassistant/lib/python3.13/site-packages/miio/miot_device.py:23: FutureWarning: functools.partial will be a method descriptor in future Python versions; wrap it in enum.member() if you want to preserve the old behavior Bool = partial(_str2bool)

https://github.com/home-assistant/core/issues/132902#issuecomment-2539442277


AssistedModule doesnt create bindings for @AssistedInject classes in different Android module

How do I make Dagger AssistedModule generate bindings for @AssistedInjected classes in different Android modules?
When I check the generated module, I dont see any bindings for the generated factories in the other module.

You need one AssistedModule per project module.

  That makes sense.


Run CI only on line/centraldogma

Motivation:
I found that CI builds run on the forked repositories.
https://github.com/ikhoon/centraldogma/actions
Modifications:

Add github.repository == 'line/centraldogma' condition for CI builds

Result:
CI builds no longer run on the forked repositories.

👍 👍 👍


NodeSchool International Day 21st May

Saturday 21st May 2016

[x] Pick location
[ ] Find 5 core people
[x] Print NodeSchool Zagreb stickers
[ ] Print Posters for the event
[ ] Decide on number of participants
[ ] Create sign up page earlier (maybe already May 1st?)
[x] Find sponsor for drinks and snacks
[x] Find marketing partners to spread the word (mailinglist, facebook, twitter etc.)
[ ] Find enough mentors (depends on number of participants)
[ ] Redesign our page - http://nodeschool.io/zagreb/

Additionally see:
https://github.com/nodeschool/international-day/blob/2016/PARTICIPATING.md
https://github.com/nodeschool/international-day

Our sponsor/partner for this event will be Five - http://five.agency

New design is here!!!!
If someone is willing to slice it, he is more then welcome :)
https://www.dropbox.com/s/q69fyu1tnnug1si/nodeschool.jpg?dl=0

@dinodsaurus  ako ti se niko ne ponudi mogu ja iskodirati to :)

Wohoooo we are good to go!!!


curl: fix ca certificates with gnutls

Description of changes
Fixes https://github.com/NixOS/nixpkgs/issues/288716
Since 8.5.0, curl cannot find ca certificates when built with gnutls. See https://github.com/curl/curl/commit/9cf47593542c6f5fb09e5c2651a56706e953d87d#diff-3db734dc543a557e2e09ac7e0a0c97d4753a077c3b1f4b9e5e0da181ed66a291L500
Adding the ca-path fixes this issue.

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

@ofborg build curlWithGnuTls


[now-routing-utils] Add validation for handle:hit and handle:miss

This PR adds initial support for handle: hit and handle: miss routes.

Codecov Report

Merging #3438 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #3438   +/-   ##
=======================================
  Coverage   14.48%   14.48%
=======================================
  Files         267      267
  Lines       10779    10779
  Branches     1481     1481
=======================================
  Hits         1561     1561
  Misses       9050     9050
  Partials      168      168

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 dd00ac4...7805b4e. Read the comment docs.


SpaceX clone

Closes #349

👨💻 Changes proposed
Added the homepage of SpaceX website.
✔ Check List (Check all the applicable boxes)

[x] My code follows the code style of this project.
[x] This PR does not contain plagiarized content.
[x] The title of my pull request is a short description of the requested changes.

📄 Note to reviewers

Please review my PR.
Video
https://user-images.githubusercontent.com/93239528/163854318-60eface6-c607-490c-8aaf-cd78e3432596.mp4
📷 Screenshots

This branch is 5 commits ahead, 15 commits behind Rayman-Sodhi/Clone-IT:main.

Looks Good!


Removed Location Column format Note

Category

[x] Content fix
[ ] New article
[ ] Example checked item (delete this line)

What's in this Pull Request?
Removed the Note for Location columns about Format this Column not being available since this is no longer accurate

Docs Build status updates of commit 72d7bd0:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/declarative-customization/column-formatting.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 50868c7:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/declarative-customization/column-formatting.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Flux 'getRecord' and 'getColumn' functions

Closes #874

[x] Tests pass (no build errors)
[x] Rebased/mergeable

@adrian-thurston Will these be merged into Flux master before the next release?

@adrian-thurston Will these be merged into Flux master before the next release?

@sanderson Sorry, I'm not sure why I didn't see this tag.
They are in the also-w branch. That should be merged very soon, assuming no further issues, but I'm not sure exactly when.


Syft hangs when encounting symlink (in /run/udev/) to a character device (in /dev/)

What happened:
Given a desire to scan a host
When it reaches a symlink that point to a character special device that would block on read
It hangs
What you expected to happen:
Given a desire to scan a host
When it reaches a symlink that point to a character special device (OR a socket) [that could block on read]
It should skip it as unreadable and continue to completion.
How to reproduce it (as minimally and precisely as possible):
On a machine with a sound driver (I couldn't think of other characters that would be likely to block on read for a CI/CD environment).
syft packages dir:/run/

Hangs when Indexing file:/run/udev/static_node-tags/uaccess/snd\x2fseq
/run/udev/static_node-tags/uaccess/snd\x2fseq is a symlink to /dev/snd/seq, which is a character device
strace shows syft doing the following

It would appear that syft is correctly detecting the symlink, but then not doing the check (that it would normally do if I run syft against file:/dev/snd/seq) in detecting it as  character special device.
Anything else we need to know?:
Environment:

Output of syft version: Version 0.32.0

Downloaded today from GitHub release using install.sh script from this repository.

OS (e.g: cat /etc/os-release or similar):

Red Hat Enterprise Linux release 8.4 (Ootpa)   --- running as a graphical workstation with sound capability.

There seems that the only path filtering function installed is isUnixSystemRuntimePath
https://github.com/anchore/syft/blob/21d1738b273f85d93e0957d72181ba73e3f8f939/syft/source/directory_resolver.go#L61-L63
There should be another filter that returns false for character-special, socket, fifo.
... and probably block specials too.
... autofs mount-points?

Thank you for describing this bug, all the details were helpful (I should use strace more often). I was able to reproduce the indexing of /dev/snd/seq, although not the hanging (maybe I need something playing?) but that is minor: Syft shouldn't index symLink if they resolve to a non-regular target.
To list the indexed files, which will then be scanned later, simply add -vv for verbose logs.
jonas@zoo:/run/udev/static_node-tags/uaccess$ syft packages dir:. -vv
[0000] DEBUG no new syft update available
[0000]  INFO indexing filesystem path="."
[0000]  INFO indexing filesystem path="/dev/snd/seq"
[0000]  INFO indexing filesystem path="/dev/snd/timer"

We have checks for files that are not regular, as socket, fifo, etc. However the check is not smart enough for symLinks:
https://github.com/anchore/syft/blob/21d1738b273f85d93e0957d72181ba73e3f8f939/syft/source/directory_resolver.go#L163
https://github.com/anchore/syft/blob/21d1738b273f85d93e0957d72181ba73e3f8f939/syft/source/directory_resolver.go#L169-L184
It should validate a symLink as well as its target. It's a simple change, I can work on it soon, or if you would like feel free to submit a pull request and I will review it.

I should add that in my case this was running in a VirtualBox VM, and I'm not entirely sure if sound was working; at least I don't normally have anything playing on it.
I'm kinda busy with log4j stuff at the moment.... otherwise I would consider trying to patch it.

( Related / duplicate of #615 )


How to backup all documents

Assuming there are 10TB documents, how to quick backup it?
Get documents
/indexes/:uid/documents

Hey,
There is a route that can help you do that. The get documents route, you can call it in a loop until it respond with an empty list.
Be careful, this route is not atomic, it means that subsequent calls to this route can return more or less documents that there is in the database, this is because an update can have been processed been two calls, therefore removing or hading documents.


net: if: selection of the src iface based on the IPv4 destination results in invalid iface

Describe the bug
The iface selection based on the destination address (IPv4) upon pkt sending worked before https://github.com/zephyrproject-rtos/zephyr/pull/81280/commits/aaab9dc8953773e4df74c9b239ca027306d2c9c7.
To Reproduce
A system must have 2 ifaces configured with link-local IPv4, i.e.:
eth_0: <IP_ADDRESS>/24  (<IP_ADDRESS>)
eth_1: <IP_ADDRESS>/30 (<IP_ADDRESS>)
We are sending a pkt to <IP_ADDRESS> and expecting the system to use eth_1. However, net_if_ipv4_select_src_addr will result in src=<IP_ADDRESS> (for dst=<IP_ADDRESS>) that leads to net_if_ipv4_addr_lookup which returns eth_0.
The main issue seems to be the net_if_ipv4_select_src_addr that gets the preferred address from the default iface instead of iterating over existing ifaces and finding the best match.

Expected behavior
Correct iface is being used to send the pkt.
Environment (please complete the following information):

OS: Linux
Toolchain Zephyr SDK 0.17.0
https://github.com/zephyrproject-rtos/zephyr/commit/b7b4de8afeb93b480b6a8e3bef18c76ea6a82bc9

@GeorgeCGV Please check https://github.com/zephyrproject-rtos/zephyr/pull/82114 if it helps in your case. The faulty behavior was reproduced in a test case and a fix proposed.


keda http-add-on CRD not being installed.

When installing the Keda HTTP-Add-On. The latest release. The httpscaledobjects.http.keda.sh CRD is not installed. I've seen this a couple of times now.
Expected Behavior
CRD is installed
Actual Behavior
It's not
Steps to Reproduce the Problem

run helm upgrade on the Keda http-add-on

Specifications

KEDA Version: v2.7.2 and Keda HTTP-add-on v0.4.1
Kubernetes Version: K3s v1.25.5+k3s1

Scaler(s): Please elaborate

Example HTTPScaledObject
kind: HTTPScaledObject
apiVersion: http.keda.sh/v1alpha1
metadata:
    name: test-web-app-dev1-pr-5351
    namespace: test-web-app-dev
spec:
    host: 5351.dev1.test-web-app.dev.heaven.com
    targetPendingRequests: 100
    scaleTargetRef:
        deployment: test-web-app-dev1-pr-5351
        service: test-web-app-dev1-pr-5351
        port: 3000
    replicas:
        min: 0
        max: 3

Other. I'm using the default values.yaml file. So CRD's is => install true

Thank you

@LarsBingBong
Have not get the steps for reproduce, Could you provide more detail for it?
My test:

helm install keda kedacore/keda
helm install keda-http kedacore/keda-add-ons-http
kubectl apply test.yaml

test.yaml:
kind: HTTPScaledObject
apiVersion: http.keda.sh/v1alpha1
metadata:
    name: test-web-app-dev1-pr-5351
spec:
    host: 5351.dev1.test-web-app.dev.heaven.com
    targetPendingRequests: 100
    scaleTargetRef:
        deployment: test-web-app-dev1-pr-5351
        service: test-web-app-dev1-pr-5351
        port: 3000
    replicas:
        min: 0
        max: 3

And the httpscaledobject was created.

I just installed this add on today, no problems.  chart version v0.4.1


BUG: Unable to create domain error 403,0

I downloaded the windows latest release and tried to create a new domain but it gives me this error:
403,0:

Attention Required! | Cloudflare...
I tried changing name and TLD but nothing changed.
Maybe it has something to do with the new captcha?

Duplicate of #149. Known issue. Cloudflare is blocking traffic right now. It's being worked around now by @cl0wnZwormz as they are working with Cloudflare.


Problem with addition of special functions

Hi,
I am trying to do the following, but it can not be parsed.
$compiler = new FormulaInterpreter\Compiler();
$executable = $compiler->compile('sqrt(9)+sqrt(16)');
$result = $executable->run(array('a' => 2,'b' => 4));
Uncaught FormulaInterpreter\Parser\ParserException: Failed to parse expression '9)+sqrt(16'
Could you fix this? :) And also: could you please do a new release with fixes of closed issues?

same problem


removeAllListeners promise does not fire

Your Environment

Plugin version: ^5.21.0
Platform: Android
OS version: 9
Device manufacturer and model: Samsung Tab 10.1 2019

Running in Simulator:

Cordova version (cordova -v): 9.0.0<EMAIL_ADDRESS>

Cordova platform version (cordova platform ls):
Installed platforms:
android 8.1.0
Available platforms:
browser ^6.0.0
electron ^1.0.0
ios ^5.0.0
osx ^5.0.0
windows ^7.0.0

Plugin configuration options:

Link to your project:

Context

the promise event does not fire
Expected Behavior

Actual Behavior

nothing happend, none of the "then", "catch" or "finally" is fired
Possible Fix

Steps to Reproduce

Context

Ionic controller :
constructor(
        public backgroundGeolocation: BackgroundGeolocation
    ) {
        console.log('BEFORE PROMISE');
        let promise = this.backgroundGeolocation.removeAllListeners(null);
        console.log('PROMISE : ', promise);
        promise
            .then(() => {
                console.log('RESULT OK');
            })
            .catch(error => {
                console.log('RESULT ERROR');
            })
            .finally(() => {
                console.log('RESULT FINALY');
            });
    }

Debug logs

Google chrome console :
private-debug-geolocation-geolocation-module-es2015.js:241 BEFORE PROMISE
private-debug-geolocation-geolocation-module-es2015.js:243 PROMISE : ZoneAwarePromise {__zone_symbol__state: null, __zone_symbol__value: Array(0)}

Bump


Bug: "Approve Good Act" button not displaying

The "Approve Good Act" context menu button introduced in 2.5.0 is not displaying on messages. Look into this issue and resolve it ASAP.

Bug appears to have self-resolved; chalking it up to an API error. Still going to monitor over the next few days, however.

Verified on prod


Add release stylo unit tests

https://github.com/servo/servo/pull/13700 moved some important binding layout tests to test-stylo (they used to be run by the regen script).
Currently test-stylo is only run in debug mode. This runs it in release mode as well.
Since linux-rel-css already contains a ./mach build-geckolib --release, and test-stylo just needs a rebuild of style and geckolib (which takes half a minute), this shouldn't cause much of an issue.
However, linux-rel-css is one of our slowest builders. Perhaps both build-geckolib --release and test-stylo --release should be put in linux-dev instead?
r? @larsbergstrom

This change is

@bors-servo r+
Let's see how the timing works out in production and we can shuffle things around as-needed. I'd probably be OK with either moving the "stable" rust stuff on top of linux-dev or creating a linux-rel-stable builder and doing the work there, on the assumption that we will eventually build+test more of Servo's tree on stable.
In general I somewhat prefer more builders doing different things than glomming unrelated things into the same builder except in the case where they can share artifacts in the CARGO_TARGET_DIR.

:pushpin: Commit 55d2a8d has been approved by larsbergstrom

:zap: Test exempted - status

Note that release geckolib does not share artefacts with release servo. So there's no advantage to keeping it in a -rel builder aside from consistent naming. The disadvantage is that the crates (which may have different versions) will get downloaded again, as will rust stable (though that will only happen every now and then)

Please file a follow up PR to servo/servo to sync the steps.yml again in anticipation of #504. (Also see servo/servo#13611).


Need clarification

[Enter feedback here]
Need clarification on following section, please see inline:

Grant SharePoint Online site permission to your registered application:

[!NOTE]
This operation requires SharePoint Online site owner permission. You can find the owner by going to the site home page -> click the "X members" in the right corner -> check who has the "Owner" role.

Open SharePoint Online site link e.g. https://[your_site_url]/_layouts/15/appinv.aspx (replace the site URL).

Search the application ID you registered, fill the empty fields, and click "Create".

App Domain: localhost.com
Comment: Exactly what FQDN should we put in here? [CompanyName].sharepoint.com ?
Redirect URL: https://www.localhost.com
Comment:  Exactly what URL we should put in here? https://[CompanyName].sharepoint.com ?
Permission Request XML:

<AppPermissionRequests AllowAppOnlyPolicy="true">
    <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web" Right="Read"/>
</AppPermissionRequests>

Comment: Exactly what Scope URL we should put in here?
https://[CompanyName].sharepoint.com/content/sitecollection/[SiteCollectionName] ?
As right now, if I just copy paste following, the connection from Data Factory doesn't work

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 8d9fd1db-042c-5f44-ee84-f1a9386fb3e3
Version Independent ID: 81cb2e37-a80c-a48a-68bd-1a03499119a7
Content: Copy data from SharePoint Online List by using Azure Data Factory - Azure Data Factory
Content Source: articles/data-factory/connector-sharepoint-online-list.md
Service: data-factory
GitHub Login: @jianleishen
Microsoft Alias: jianleishen

Thanks for the feedback and bringing this to our notice . At this time we are reviewing the feedback and will update the document as appropriate .

Hello @jyeblog .
The scope should be kept as
Scope="http://sharepoint/content/sitecollection/web"
We tried with your settings, and it worked.  We did however get that error message when making mistake in the Linked Service Site url.
The Linked Service Site url should be https://mySite.sharepoint.com/  not https://mySite.sharepoint.com/lists

We will now proceed to close this thread as we have not heard back from you. If there are further questions regarding this matter, please tag me in your reply and reopen the issue. We will gladly continue the discussion.


Please update the Heroku-16 images to include the fix for git CVE-2017-1000117

Currently the Heroku-16 images are using version 1:2.7.4-0ubuntu1 of the Ubuntu git package:
$ heroku run -- dpkg-query --show --showformat=\'\${Version}\' git
Running dpkg-query --show --showformat='${Version}' git on heroku-16-test... up, run.8077 (Free)
1:2.7.4-0ubuntu1

This is missing:
git (1:2.7.4-0ubuntu1.2) xenial-security; urgency=medium

  * SECURITY UPDATE: Arbitrary code execution on clients through
    malicious ssh URLs.
    - debian/patches/CVE-2017-1000117.patch: filter out hostnames that
      would interpreted as cli arguments to ssh
    - debian/diff/0002-transport-expose-git_tcp_connect-and-friends-in-new-t.diff:
      update to adjust for changes from CVE-2017-1000117.patch.
    - CVE-2017-1000117

 -- Steve Beattie <SNIP>  Thu, 10 Aug 2017 14:15:28 -0700

git (1:2.7.4-0ubuntu1.1) xenial-security; urgency=medium

  * SECURITY UPDATE: git shell restriction bypass
    - debian/patches/CVE-2017-8386.patch: disallow repo names beginning
      with dash in shell.c.
    - CVE-2017-8386

 -- Marc Deslauriers <SNIP>  Fri, 12 May 2017 09:29:55 -0400

(From http://changelogs.ubuntu.com/changelogs/pool/main/g/git/git_2.7.4-0ubuntu1.2/changelog)

These fixes are also missing:
https://usn.ubuntu.com/usn/usn-3302-1/
https://usn.ubuntu.com/usn/usn-3297-1/
https://usn.ubuntu.com/usn/usn-3274-1/
https://usn.ubuntu.com/usn/usn-3282-1/
https://usn.ubuntu.com/usn/usn-3272-1/
https://usn.ubuntu.com/usn/usn-3272-2/
https://usn.ubuntu.com/usn/usn-3318-1/
https://usn.ubuntu.com/usn/usn-3212-1/
https://usn.ubuntu.com/usn/usn-3212-2/
Judging from the timestamps in the image, I don't think it's been updated at all since 24th Feb 2017, which is slightly concerning.
Is there not a process in place for generating regular updates (a) every N months, (b) in response to new CVE announcements?

We release new stack images mostly based on advisories from our own security team. The timeline for patching varies by severity. Some of the factors that contribute is how the vulnerability would be exploited, the likelihood for an exploit and if workarounds exist.
In the case of CVE-2017-1000117, we updated our own Git service within hours as that was a high-risk target. It's much less likely that apps running on Heroku clones repositories and even less likely that they do so based on arbitrary user input so testing for regressions became more important than rolling out a fix immediately. Apps that might be affected could set GIT_ALLOW_PROTOCOL which we intended to post to our changelog but sadly missed.
Testing for regressions is particularly important. We've seen a number of odd cases such as this EGLIBC bug and this OpenSSL bug. Sometimes these errors affect many apps and are easy to spot but sometimes they only manifest due to our scale and makes them almost impossible to detect to anyone but the affected customer.
Better tooling for building stack images is definitely part of the answer. We should catch regressions like the changed dependency tree (and now will thanks to #73) and we should make it possible to introduce urgent updates to specific packages without touching anything else. These are things we'll continue to work on.
Anyway, the Heroku-16 stack image was updated early last week and the Cedar-14 stack image is now finally updated based on latest packages.
Thank you for reporting this issue.

That makes sense - thank you for the image update & the extra context :-)


Update indentation for snippet body

Fixes #1780
Checklist

[x] I have added tests
[/] I have updated the docs and cheatsheet
[/] I have not broken the cheatsheet

Updated

We decided in today's meet up that this should move to the parser of the snippet format instead


403 OpenAI error On Quickstart

LLMError: OpenAIError raised by OpenAIGPT
Received 403 FORBIDDEN from OpenAI - model_not_found
See server logs for more details
Followed the quickstart, entered my openai api key.

Forgot to mention, docs should be updated to explain the key needs access to gpt-4-turbo


Feature add reset password

This PR adds forgot password and reset password to auth controller. It moves all authentication related handlers from user controller to a new auth controller.

Coverage decreased (-7.4%) to 86.177% when pulling fbc58e5ff8f74ef60327142e48ef10633d653009 on feature-add-reset-password into 1744a8df164bbd002cc5d927f67584b52e5ea414 on master.


Roll engine 162b2e98c036..6c2a0b3a6d93 (5 commits)

https://github.com/flutter/engine/compare/162b2e98c036...6c2a0b3a6d93
git log 162b2e98c036..6c2a0b3a6d93 --no-merges --oneline
6c2a0b3a6 Undefine ERROR in platform_view_layer.cc (flutter/engine#6675)
55e12993a Update FlutterPlugin.h docs, suppress warning for older API (flutter/engine#6672)
f7970048d Attach and position embedded UIVIews (flutter/engine#6614)
df85722fa Plumb the iOS PlatformViewsController into flow. (flutter/engine#6603)
2bfb893cf iOS Embedding Refactor (flutter/engine#6447)
The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

@liyuqian : New roll has been created by https://autoroll.skia.org/r/flutter-engine-flutter-autoroll

Auto-roller completed checks. About to merge.

Looks like this broke the build. cc @liyuqian

I'm not surprised as this roll include some quite significant changes to the engine from @dnfield and @amirh . I'll revert the roll and try to manually roll "2bfb893cf iOS Embedding Refactor" to see if it's causing the issue.


[patch] fix versioning

Codecov Report

Merging #6 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master       #6   +/-   ##
=======================================
  Coverage   85.43%   85.43%
=======================================
  Files          11       11
  Lines         357      357
=======================================
  Hits          305      305
  Misses         43       43
  Partials        9        9

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 a841974...dc7e895. Read the comment docs.

LGTM


least_squares broken with float32

optimize.least_squares doesn't work reliably with float32. Changing the dtype to float64 (or removing it) yields the expected result.
Reproducing code example:
import matplotlib.pyplot as plt
import numpy as np
from scipy import optimize

x = np.linspace(0, 1, 100).astype("float32")
y = np.random.random(100).astype("float32")

def func(p, x):
    return p[0] + p[1] * x

def err(p, x, y):
    return func(p, x) - y

res = optimize.least_squares(err, [-1.0, -1.0], args=(x, y))
plt.plot(x, y, "x")
plt.plot(x, func(res.x, x))
plt.show()

Error message:
No error is raised, just the fit does not converge.
Scipy/Numpy/Python version information:

1.5.3 1.18.4 sys.version_info(major=3, minor=8, micro=6, releaselevel='final', serial=0)

Some additional infos:
It terminates with message "gtol termination condition is satisfied."
If I set gtol=None I get the following output:
~/.local/lib/python3.8/site-packages/scipy/optimize/_lsq/common.py:113: RuntimeWarning: invalid value encountered in true_divide
  p_norm = norm(suf / denom)
~/.local/lib/python3.8/site-packages/scipy/optimize/_lsq/common.py:115: RuntimeWarning: invalid value encountered in true_divide
  phi_prime = -np.sum(suf ** 2 / denom**3) / p_norm
The maximum number of function evaluations is exceeded.

This arises because of floating point issues in the numerical differentation of the user function. The initial gradient (J0) of err is computed here. Your err function returns np.float32 arrays, but the default step size for the numerical differentiation is worked out on the assumption one is using np.float64. This step size is too small, and so when one takes a small step dx all the df are 0. Therefore the initial Jacobian is all zeros, a consequence of working with too small an EPS for the floating point size.
>>> from scipy.optimize._numdiff import approx_derivative
>>> # I trimmed the output array
>>> approx_derivative(err, [-1.0, -1.0], method='2-point', args=(x, y))
array([[-0., -0.],
       [-0., -0.],
       [-0., -0.],
...
       [-0., -0.],
       [-0., -0.],
       [-0., -0.]])

This causes the premature termination of the minimisation (here).
Note that if one uses leastsq I think the correct EPS is calculated using an appropriate value for the floating point size.
Wherever possible I always recommend that people work with float64 data because of these issues.
Possible improvements:

Improve the documentation to point out that this kind of issue exists when one is working with FP arithmetic.
Change _numdiff so that it uses the correct step size for the dtype.


User-specified threshold / radius

I have some attractors. I have a feature of these attractors called "R". I want to cluster attractors by R, but with "threshold" 0.1, whatever this means. In principle I would like to separate attractors into clusters separated by distance 0.1.
To my understanding this could be done two ways in ClusteringConfig (please confirm if this is true)

initialize 0.1-spaced features and use them as templates. Then, choose clustering_threshold = 0.1. (?)
Use unsupervised method and specify the optimal radius to be 0.1. (???)

Number 2 isn't possible in current API. We should allow the user to provide a real number in optimal_radius_method, and then the search for optimal radius is skipped entirely and the provided value is used instead.
Would Number 1 as described do what I want?
P.s.: A bit off-topic but relevant. This is confusing:

    clustering_threshold = 0.0: Maximum allowed
    distance between a feature and the cluster center
    for it to be considered inside the cluster. Only
    used when clust_method = "kNN_thresholded".

If the maximum allowed distance is by default 0, each point would become its own cluster, right? Because, by definition, each point will have more than allowed distance to be considered inside the cluster. In general the doc for this keyword is confusing and needs to be improved. cc @KalelR  Did you mean to make the deafult value for this Inf ?

So many versions and algorithms, things start getting confusing! haha. Checking the code again, I noticed you are right,both the code and documentation could be much clearer. Some terminology I kept from the bstab paper implementation, which wasn't a good idea. I'll work on improving this to make everything clearer, I'll try to have a PR soon. The code as-is now should work though.
Idea No. 1 is to use templates, for which we'd use the kNN method, which works by assigning each feature to its nearest template (first neighbor). Each feature will be at a distance d to this nearest template. For perfect features and templates, this distance would always be zero, as each feature would be exactly on top of its nearest template. But it may be in practice that d > 0. If this distance d > clustering_threshold, meaning the feature's closest template is further than the allowed threshold, we say the feature does not belong to any template and assign the label -1.
So for the "perfect case" d = 0 only a clustering_threshold <= 0 makes the feature assigned to its template. So clustering_threshold = 0 is a good default if we want to be very strict.

If the maximum allowed distance is by default 0, each point would become its own cluster, right?
Not if several points are identical to the cluster, then all are assigned to that cluster. Otherwise yes. If for instance there's a small dispersion around the templates, the points would be labelled -1.

This method should work for what you want to do.
Number 2 wouldn't necessarily work. This is because the clustering method used in featurizing, dBSCAN, can group together points that are further away than the maximal radius. This is because the maximal radius is only used for the distance between pairs of points, so one can have a cluster with each point within the radius to another point, but not every point within that radius. For instance imagine the radius is 1, one could have points 0.5, 1.0, 1.5, 2.0.
So this algorithm might cluster R values more than 0.1 apart. Depends on how they are distributed.

There is no such thing as perfect case. Like, even machine precision, that always goes into mean, would make things have distance >0, even 1e-16. I believe this 0 is not a good idea and we should have Inf as the default. A feature gets map to the closest template no matter how far away "closest" is.

I am also confused on why you use cluster_threshold <= 0. We are talking distances, so negative numbers aren't on the table.

For number 2:

So this algorithm might cluster R values more than 0.1 apart. Depends on how they are distributed.

Yes, I understand that, but I am thinking that hte distributions of R values is multimodal with peaks separated more than 0.1, so choosing 0.1, which would be something like 1/4 the width of each mode of the distribution, should be enough.

There is no such thing as perfect case. Like, even machine precision, that always goes into mean, would make things have distance >0, even 1e-16. I believe this 0 is not a good idea and we should have Inf as the default. A feature gets map to the closest template no matter how far away "closest" is.
EDIT: Only a user can meaningfully decide on a finite threshold as it depends on the dimensions / units of the data.

Good point. The code still works though because when clustering_threshold = 0 we don't do the comparison. This is because we differentiated between kNN and kNN_thresholded which I think just doesn't make sense. I'm changing the code to update this, and I'll change the default value also.
I mentioned cluster_threshold <= 0 just for completeness, but of course any negative value wouldn't make sense.

For number 2:

So this algorithm might cluster R values more than 0.1 apart. Depends on how they are distributed.

Yes, I understand that, but I am thinking that hte distributions of R values is multimodal with peaks separated more than 0.1, so choosing 0.1, which would be something like 1/4 the width of each mode of the distribution, should be enough.

In that case then it should probably work. You can also limit the grouping of the features by increasing min_neighbors if necessary.


python: Add main test fixture and consolidate checker/runner mains

Signed-off-by: Ryan Northey<EMAIL_ADDRESS>Commit Message: python: Add main test fixture and consolidate checker/runner mains
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Deprecated:]
[Optional API Considerations:]

/retest


Can only build custom client if serviceName is "custom-service"

What platform/OS are you using?
Microsoft Windows 10 Enterprise 1709 Build 16299.1146
Which version of the SDK?
1.1.117
What compiler are you using? what version?
Microsoft Visual Studio 2017 (cl.exe version 19.16.27027.1)
What are your CMake arguments?
-DBUILD_ONLY="s3" -DADD_CUSTOM_CLIENTS="serviceName=petstore, version=2017-11-03"
I'm trying to generate a custom client for my API Gateway service, but the Cmake process fails unless my service is named "custom-service". You can reproduce the problem with the sample PetStore custom service as follows:

Copy custom-service-2017-11-03.normal.json from code-generation/api-descriptions/custom-service to code-generation/api-descriptions
Rename custom-service-2017-11-03.normal.json to petstore-2017-11-03.normal.json
Run CMake using -DADD_CUSTOM_CLIENTS="serviceName=petstore, version=2017-11-03"

I can see code generated in <source_dir>/aws-cpp-sdk-petstore, and a folder called aws-cpp-sdk-petstore in my build directory, but CMake fails with the error:
  get_property could not find TARGET aws-cpp-sdk-petstore.  Perhaps it has   not yet been created.
If I look in aws-cpp-sdk-petstore in my build directory, I see a file called aws-cpp-sdk-custom-service-config-version.cmake. It seems like the file is always named with "custom-service" no matter what I name my custom service .json file. Everything seems to work if I leave the service name as "custom-service". I'm wondering if in 7d60ff63bc5532e897b372f45b748132a8025880 the project name was maybe inadvertently hard-coded to "aws-cpp-sdk-custom-service"? Or is there a step I'm missing?

Hi, there.
It was hard coded by mistake. We will fix that.
If the protocol is "api-gateway", it will always have "aws-cpp-sdk-custom-service" as project name.
https://github.com/aws/aws-sdk-cpp/blob/9007ea3f1eeae02179336146ed8d58899fc3efea/code-generation/api-descriptions/custom-service/custom-service-2017-11-03.normal.json#L7
https://github.com/aws/aws-sdk-cpp/blob/9007ea3f1eeae02179336146ed8d58899fc3efea/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/CMakeFile.vm#L5
And for your use case, would you like to build your service with SDK at the same time? Or build your service after you have installed SDK?

Thanks for the reply! It'd be nice to be able to build my service at the same time as the SDK, and then be able to re-build just the service if I need to make changes to it. Currently it seems like I need to build and install the SDK without my custom service (i.e. without ADD_CUSTOM_CLIENTS) first, as the custom service build process expects the aws-sdk-core libraries to already be installed.
This is probably a separate issue, but on the topic of generating custom clients, I also needed to use the workaround described in this comment for the AWSAuthV4Signer to work. Namely, setting the endpoint prefix to "execute-api" and then setting the endpointOverride to "abcdefg123.execute-api.us-east-1.amazonaws.com" (or similar) in my custom client's ClientConfiguration.

Yes, currently you have to build and install SDK first.
And for your separate issue, we will append "execute-api" to the original endpoint, if the protocol is "api-gateway":
https://github.com/aws/aws-sdk-cpp/blob/11e9a78009eea36d219be20988f65b5ad74bdee0/code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/transform/C2jModelToGeneratorModelTransformer.java#L112

I think the endpoint prefix part of the code generation is fine as you stated. My issue was that in the generated code (i.e. PetStoreClient.cpp), SERVICE_NAME was being set to my API's endpoint prefix (i.e. "z2z37qum61") when the signer wants it to be "execute-api". In JsonServiceClientSource.vm line 43 you can see that this is set based on the signingName from metadata:
static const char* SERVICE_NAME = "${metadata.signingName}";
And here in the Java code you can see that the signing name is set to the endpointPrefix if it's not explicitly set in the JSON definition:
https://github.com/aws/aws-sdk-cpp/blob/11e9a78009eea36d219be20988f65b5ad74bdee0/code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/transform/C2jModelToGeneratorModelTransformer.java#L107
So ultimately my solution was to set "signingName" : "execute-api" in my service's .json file. Perhaps this should also be set in the PetStore example file, and/or have the Java code set signingName to "execute-api" if not explicitly set and the protocol is "api-gateway"?

I'm not sure if I should pile on a "me too" for this thread.
There version used by OP, 1.1.117 is extremely old. I am unable to build my custom client (protocol api-gateway) using the latest release 1.7.146.
I'm building static libraries on "Visual Studio 15 2017 Win64" platform, with CPP_STANDARD=17.
The last version I successfully compiled my custom client was 1.5.17, and it was working fine then. I have not changed my api gateway at all since then. I did change my build process slightly, based on this thread. Above it was mentioned to build/install the sdk first, then come back to build the custom client. I did make that change, although previously, with 1.5.17, I was able to do both in one step. Even with this change to build the sdk first, then come back for another pass to build only my custom client, with version 1.7.146 it is failing.
Here is the end of the process where it is failing (some of these names have been changed, for obvious reasons)...
-- serviceName=myCustomAPI, version=2018-07-13
-- Clearing existing directory for myCustomAPI to prepare for generation.
-- generating client for myCustomAPI version 2018-07-13
Generating myCustomAPI api version 2018-07-13.
-- Found AWS SDK for C++, Version: 1.7.146, Install Root:C:/Users/myUserName/AppData/Local/Temp/awsdepinstall/Debug, Platform Prefix:, Platform Dependent Libraries: Userenv;version;ws2_32;Bcrypt;Wininet;winhttp
-- Components specified for AWSSDK: core
-- Try finding aws-cpp-sdk-core
-- Found aws-cpp-sdk-core
-- Building custom service as static objects
-- Updating version info to 1.7.146
-- Custom memory management disabled
CMake Error at cmake/dependencies.cmake:15 (get_property):
  get_property could not find TARGET aws-cpp-sdk-myCustomAPI.  Perhaps it has
  not yet been created.
Call Stack (most recent call first):
  cmake/dependencies.cmake:59 (compute_links)
  cmake/sdks.cmake:226 (sort_links)
  CMakeLists.txt:288 (add_sdks)

CMake Error at cmake/dependencies.cmake:70 (get_target_property):
  get_target_property() called with non-existent target
  "aws-cpp-sdk-myCustomAPI".
Call Stack (most recent call first):
  cmake/sdks.cmake:226 (sort_links)
  CMakeLists.txt:288 (add_sdks)

One additional bit of info, I do see that source code has been generated under aws-cpp-sdk-myCustomAPI, just like it was in previous versions. I'm not savvy enough to know if it's correct, but it appears to be complete. Somehow the build appears to be broken and failing to find the target.
So, is this the same issue as OP, or should I start a new issue? Is there a work-around? Changing my service name to "custom-service", as deployed in the cloud, is not an option.

@mattman71 Oops you are right - the version was a typo, should have been 1.7.117. I edited the original post with the correct version I was using.
And yes that is the exact error I get if I call my service anything other than "custom-service". If you go to the aws-cpp-sdk-myCustomAPI directory in your build folder, you will see a file called "aws-cpp-sdk-custom-service-config-version.cmake". This should be generated as "aws-cpp-sdk-myCustomAPI-config-version.cmake", but it's not. Seems like the bug may have been introduced in 1.7.98.

@wps132230 , after playing with this, I concur your identification above about CMakefile.vm line 5. If I do this patch:
5c5
< project(aws-cpp-sdk-custom-service)
---
> project(aws-cpp-sdk-${metadata.projectName})

then the build continues successfully with all the proper names.
I can't comment about the execute-api endpoint situation mentioned, as I'm not sure what I'm looking for there yet to determine if I'm having that issue.

Hi, @mattman71 , you are right, we are about to fix that. And the code is under review.

Hi, we've fixed this issue: https://github.com/aws/aws-sdk-cpp/commit/5cae5d29c91994c6dabcffe9c15098738e2c6c96
And by using -DADD_CUSTOM_CLIENTS, you can build your custom client along with C++ SDK now.
Otherwise, you can follow this step to build custom client as a separate package: https://github.com/aws/aws-sdk-cpp/blob/master/scripts/build_custom_client.sh

I've confirmed that the build completes successfully now...
I was able to build with the SDK (by using -DADD_CUSTOM_CLIENTS along with sdk build, using -DBUILD_ONLY="stuff;I;want" -- and not having to specify my custom client in the -DBUILD_ONLY).
I also was able to build the client by itself, by pointing the install dir to the previously build SDK libraries, and using -DADD_CUSTOM_CLIENTS on the subsequent build run and giving -DBUILD_ONLY="myCustomClient" (though I'm not sure that was necessary, it did work).
I haven't tested the execution, that's a different story, but the build is working.
Thank you!

I can also confirm that the service name issue is resolved, thank you!
As for the endpoint issue, my difficulty was that I was using Lambda Proxy integration in API Gateway, and therefore had no Method Response models defined. This meant when I tried to generate a c2j file using the aws apigateway get-export ... --export-type c2j command, I got an error saying "Must have at least one 2xx response." Same error if I tried to generate a Java SDK. So I ended up switching to Lambda Integration and defining Method Response models for my endpoints, and now I can generate a c2j file for my API. In the generated version, the signingName is set correctly to "execute-api", and so I don't need to set the endpointOverride in my client as a workaround.
So the lesson learned was: if you want to automatically generate a c2j file for your API, it seems like you need to define Method Response models in API Gateway. If you don't want to define response models, you can still start from the petstore custom-service example file, but you may need to set some additional metadata fields depending on things like signature version (in my case, I needed to set signingName to "execute-api"). The generated version is also far more detailed than the one I was trying to build by hand, so I'll probably stick with defining response models for now. If you're using Serverless Framework, the serverless-aws-documentation plugin was helpful with this.


Missing processing for us_nation_5m?

I might be missing it, but I don't see how the cb_2020_us_nation_5m.zip file is downloaded / processed. Just need to add it to download_boundaries.sh?

Thanks for catching this @TomAugspurger  download_boundaries.sh has been updated to include cb_2020_us_nation_5m.zip and a new release has been made with this change, didn't realize initially it wasn't in the bulk file - I just double-checked all the other files as well.


Updates to the how you compare front page

Resolves items from the attached mockup with the exception of:

Item "3", inserting a switch for 16S <-> shotgun into the breadcrumb bar would require either a modification to sitebase.html or some fancy Javascript to resolve. Deferring that item
A pill for for "microbes and health" was not added as that is pending some additional conversations

Microbial maps formatting with draft text

@dhakim87, just fyi, formatting and draft text for microbial maps in with at the moment some placeholder images, some "pcoa-..." ID'd divs.

fixes #60

Merging this as the changes are getting large and its oriented at an example still


[Feature]: Please expose the request to the LinksFunction

What is the new or updated feature that you are suggesting?
It would be great to expose the Request object to a LinksFunction to programmatically change certain links (e.g the favicon based on data in the cookie)
Why should this feature be included?
I allow the users of my app to choose which icon they'd like to see in the header. The information is stored in the settings cookie. If I had access to the request Object I could access the cookies and set the favicon programmatically.

@sergiodxa thanks for the information. That's a neat library you created with a couple of handy functionality.
While it is great to have the option to have LoaderData available in the DynamicLinks component you created, it is not exactly what I need. The Request object should be available for free at every moment in the remix lifecycle, so it would just need to be passed on as a parameter to the links function.

Links can’t have access to the Request because they run both client and server side, same with Meta, that’s why if you need data from the request you should return it in the loader.

Oh my, thanks for the clarification. Somehow I thought the Links part was only running server side, which on second thought doesn't make sense.
Therefore I'm closing this as a non feature request and will use the remix-utils DynamicLinks functionality for my endeavor.

Links can’t have access to the Request because they run both client and server side, same with Meta, that’s why if you need data from the request you should return it in the loader.

@sergiodxa
while I understand the logic, the meta function does get the loader data, so I don't understand why links can't get it too


Added 'Known issues' section

I added a Known issues section in the readme file for frequently asked issues. Maybe this helps in lowering the number of opened issues regarding these problems.
What do you think?

If #73 will be merged, maybe this PR becomes obsolete. Feel free to close this.

Thanks!


Possibility to set HTTP[s] proxy by env variable

It would help a lot if there is env variable for docker to set http[s] proxy settings.
HTTP_PROXY=http://proxy:port HTTPS_PROXY=http://proxy:port docker run ...
Should be easy script which will update prefs.js like https://stackoverflow.com/questions/843340/firefox-proxy-settings-via-command-line
Thank you!

With the latest version, it is possible to set preferences via environment variables!