[WIP] Openstack missing neutron models

Models and migrations for missing neutron features
WIP need to solve the TODOs, storing the data into some generic ManageIQ tables

@miq-bot add_label wip

@blomquisg
PG::Error: ERROR:  duplicate key value violates unique constraint "index_security_groups_vms_on_security_group_id_and_vm_id"
DETAIL:  Key (security_group_id, vm_id)=(1000000000031,<PHONE_NUMBER>160) already exists.
hmm, so adding missing unique indexes will not be that easy :-) what is your approach in this case, cause seems like we will need some migration script that will clean the db? (apart from cartridge refresh) I will create separate issue for this, I am right that this should be unique, right?

@blomquisg https://github.com/ManageIQ/manageiq/issues/3419

@blomquisg @Fryguy @matthewd @jrafanie What is the way you would store the list and dict attributes stated in todos?
I can think either CustomAttribute for dict and for list of dicts I would create CustomAttributeCollection? Or just serialize that fields into text field? Serialization will be easier to maintain when updating the attributes.
Thank youu.

@miq-bot remove_label wip

solved with serialization after talking to @blomquisg

I'd like to have some input from someone with network experience, as this is starting to get into network management.  @roliveri or @brandondunne maybe?
Also, why collect all this stuff?  Like are there management use cases for all of these new columns? @jonnyfiveiq @chessbyte Thoughts?

In addition, is the cloud ports really any different from the firewall_rules table (i.e. port range configurations).  How is it different than container_port_configs.  I really don't like having multiple tables that all represent the same things.  cc @simon3z @abonas

In addition, is the cloud ports really any different from the firewall_rules table (i.e. port range configurations). How is it different than container_port_configs? I really don't like having multiple tables that all represent the same things. cc @simon3z @abonas

I think that cloud_ports is actually a "full" ip address :fixed_ip  assigned to an instance vs instead one/multi ports assigned to container groups in container_port_configs (and firewall_rules probably).
Anyway we can try to find features(/columns) in common and try to consolidate if you think it would be beneficial.

@Fryguy @simon3z it's models base for the networking provider @jonnyfiveiq  wants, that should be based on the Neutron. John wants to use this as base for SDN provider. We should use most of in under Infra/Cloud, we are currently building referential baremetal OpenStack setup, that we will use for writing refresh.
Cloud ports are for modeling of the interfaces of the machine, should be also for modeling of virtual interfaces, bonding.. And are used for relations to actual devices in the network Hosts, Instances, Routers, etc.
In this case port == interface with MAC address, where port in firewall is opened port on the machine. I've adopted Neutron naming, we can change it if you want.

@Fryguy I've added just one text field :extra_attributes and I will create the virtual columns on need bases, when I will write refresh. Will that be ok?

@Fryguy The two "ports" you are referring to are different things.  The ones being added here are physical connections (OSI Layer 1 - Physical), the firewall rules are TCP/UDP ports (OSI Layer 4 - Transport).
I'm not a big fan of putting all of this stuff in the cloud namespace since it is all more generic than that.  We already have some networking stuff attached to hardwares in what I think is a strange way and we already cloud namespaced some other networking concepts(CloudNetwork / CloudSubnet) because of Amazon and Openstack and it just feels wrong.
I've heard several people say that we need to add networking support and that it should be based on SDN and Neutron, but I haven't seen anything more than that until now.  I think we need to have a larger discussion about what we need from networking and what users want to see before making modeling decisions.  @jonnyfiveiq Do you have some user stories to help with direction?
cc @chessbyte

I'm not a big fan of putting all of this stuff in the cloud namespace

+1

@brandondunne the idea was building SND provider data model based on Neutron, that will be used in 2 new SDN only providers. So I finished basic cloud_ models, that were missing for Neutron Integration.
The CloudPorts were modeled before using existing Infra models, I started to do that first https://github.com/ManageIQ/manageiq/pull/3060 . CloudPort is modeled using GuestDevice and Network models. Not sure how to model CloudRouter using that models. Seems to me these models doesn't really match what is done in Neutron, but can be bent.
So right now this PR finishes modeling of

networks (vlans belong in here as extension as well as provider networks)
subnets
ports (interfaces in neutron naming)
routers (L3 networking)
security groups
security group rules (basically firewall rules)
floating ips

And we are not modeling these Neutron features, yet:

Metering labels and rules (not sure what this does, doc says 'Creates, modifies, and deletes OpenStack Layer3 metering labels and rules.')
load balancer as a service (includes vips, health monitors, pools, members + more in experimental version)
vpn as a service (includes vpn services, ike policies, ipsec policiaies, ipsec connections)

For OpenstackInfra, the basic use case is being able to display network architecture with isolated networks (using tagged vlans), provider networks and bonded interfaces. So we need to store, how are all the elements in the network connected. We are currently building baremetal enviroment with couple of the hosts, so we can write refresh code with real Neutron data.
I am not aware of the new SDN providers use cases, but it should be similar to Neutron's.
@brandondunne that being said, I am opened to any larger discussion :-)

@brandondunne @matthewd btw. for the prefixes I have no preference, I just followed existin pattern, do you think rather Router and Port (maybe Interface or DeviceInterface) classes will be better?

@bronaghs I think you have a solid networking background.  Can you review this PR and provide your feedback.

@chessbyte @bronaghs btw. my real world production networking experience approximates to 0. I am using @mcornea as my pool of knowledge, also he sets various production like network setups on baremetals for me.

@chessbyte - Sure.
@Ladas - is there a trello card or BZ or anything describing what this is doing at a high level? Im a bit late to the party.

@Ladas -
I do not see any support for layer 2 (switches, bridges, VLANs). I know Neutron abstracts some of the networking complexities so maybe this by design?
Should there be a has_many association between cloud_router and cloud_subnet? I do not see any association.
There is currently a has_many relationship between cloud_port and floating_ip. I am wondering this should be a has_one?

@bronaghs @Ladas Neutron by itself can manage vlans on top of existing bridge(it dosn't create bridges itself). You provide a range of vlan and the bridge where to set them up in the conf file and Neutron can use those vlans for the networks that it creates. There are several Neutron plugins[1] that provide support for physical switches but I think we might need to use a combo of Neutron API calls + configuration files parsing by fleecing in order to get complete view of the networking setup.
[1] https://github.com/openstack/neutron/tree/master/neutron/plugins

@bronaghs cloud_router <-> subnet goes through cloud_port. CloudPort belongs to device (router in this case) and CloudPort belongs to CloudSubnet
For the cloud_port has_many floating ips, that is possible when the floating ips has different fixed_ips, otherwise you will get an API error. (floating_ip model has floating_ip and fixed_ip attribute)
There is one bad thing I noticed, port should have also has_many fixed ips, though fixed_ips are not modeled separately. Only as part of floating_ips and array attribute of the port. But OpenstackInfra provider seems to use only fixed_ips, so I somehow need to figure out this modelling.

@bronaghs I just deleted the cloud_port.fixed_ip attribute, so normally that will be modeled by floating_ips association, or as multiple fixed_ips as virtual column (in the extra_attributes)
@mcornea @bronaghs btw. no trello card I know about, maybe @jonnyfiveiq can create some? The task should be to support Neutron architecture fully, as a starting point.
Any more issues you see?

@Fryguy @tenderlove btw. should I remove HasAndBelongsToMany as rubocop wants? I see it's normally used throughout the code. Thank you. :-)

If there is nothing on the middle table (except keys), then I don't think there is a need to remove the HABTM.

@tenderlove yes, that is the case here. Ok, thank you.

I really want to merge this, but I'm hung up on two things (see inline comments for more details):

extra_attributes
device vs. router

I talked to @jonnyfiveiq last week and this doesn't seem to match what he is looking for.  I will try to write up my understanding on talk asap.

@blomquisg device vs. router should be explained. If you can get to the older version of this PR, there are all the serialized attributes, that were merged into one extra_attributes, so we don't have many serialized attributes there.

@brandondunne AFAIK @jonnyfiveiq is looking for models that will be modeling Neutron fully, unless something has changed

(copied from a hidden comment)
We need to do a decent amount of refactoring around the models that are currently labeled cloud_, including cloud_network, cloud_subnet, and cloud_tenant.
It looks like we should have network_subnet and provider_tenant. And then, reevaluate how we're using the current network model. With the possibility of splitting out physical networks from software defined networks.
But, I think part of what's holding me up here is the fact that we have these legacy cloud-specific models that are getting pulled into an infra space. When in reality, they're more like SDN models being used by different provider types.
@matthewd, @Fryguy, @brandondunne ... does that sound about right to you too?

@blomquisg Completely agree with the refactoring and renaming.  Until we drop the cloud_ in favor of a better name I think this will look strange.

@blomquisg @matthewd so you want me to rename existing models as part of this patch? Or some another migration PR?

@ladas, sorry .. I would see that coming in a separate patch ... too big for this one, I think ... it needs a lot more understanding of where we're going with networking in general, too I think.
@brandondunne do you agree?

@blomquisg Yes, I think we should do the refactoring / renaming in a follow-up PR

hm azure error

ManageIQ::Providers::Azure::CloudManager will perform a full refresh
Failure/Error: EmsRefresh.refresh(@ems)
NameError:
uninitialized class variable @@providers in Azure::Armrest::VirtualMachineService
./app/models/manageiq/providers/azure/cloud_manager/refresh_parser.rb:42:in `block in get_series'
./app/models/manageiq/providers/azure/cloud_manager/refresh_parser.rb:40:in `each'
./app/models/manageiq/providers/azure/cloud_manager/refresh_parser.rb:40:in `get_series'
./app/models/manageiq/providers/azure/cloud_manager/refresh_parser.rb:27:in `ems_inv_to_hashes'
./app/models/manageiq/providers/azure/cloud_manager/refresh_parser.rb:9:in `ems_inv_to_hashes'
./app/models/manageiq/providers/azure/cloud_manager/refresher.rb:6:in `parse_inventory'
./app/models/ems_refresh/refreshers/ems_refresher_mixin.rb:19:in `block in refresh'
./app/models/ems_refresh/refreshers/ems_refresher_mixin.rb:7:in `each'
./app/models/ems_refresh/refreshers/ems_refresher_mixin.rb:7:in `refresh'
./app/models/manageiq/providers/base_manager/refresher.rb:12:in `refresh'
./app/models/ems_refresh.rb:78:in `block in refresh'
./app/models/ems_refresh.rb:77:in `each'
./app/models/ems_refresh.rb:77:in `refresh'
./spec/models/ems_refresh/refreshers/azure_refresher_spec.rb:28:in `block (4 levels) in <top (required)>'
./spec/models/ems_refresh/refreshers/azure_refresher_spec.rb:27:in `block (3 levels) in <top (required)>'
./spec/models/ems_refresh/refreshers/azure_refresher_spec.rb:25:in `times'
./spec/models/ems_refresh/refreshers/azure_refresher_spec.rb:25:in `block (2 levels) in <top (required)>'


Images cannot be uploaded to server

Describe the bug
Whenever I try to import anything, the module cannot upload the images and i get an error in the console. I checked the configured directories and I am able to upload pictures manually. I even set wright premissions to everyone.
What I find suspicious is the link it tries to get the image from: https://images.ddb.mrprimate.co.uk/https://www.dndbeyond.com/avatars/35806/815/1581111423-104782081.jpeg?width=150&height=150&fit=crop&quality=95&auto=webp
This does not seem correct.
To Reproduce
Steps to reproduce the behavior:

Try to import a character from dndbeyond or use the muncher to import items, spells, etc.

Expected behavior
Images are uploaded correctly
Screenshots

Environment:

Browser chrome
Foundry Version 11 Stable
5e System Version 2.2.2
Module Version 3.4.52
Does this behaviour occur with other modules disabled: Yes
A Character URL, if the problem is a character import: https://www.dndbeyond.com/characters/44656683

The image path is correct, the importer needs to download images via a CORS proxy due to various internet security things.
Can you open say the character image/token section and manually upload anything to the [data] dndbeyond path? It might be that the foundry application itself cannot write to that folder.

Already did this "I checked the configured directories and I am able to upload pictures manually." Sorry for the confusion.

It seems that since the last time I used foundry my chrome-profile got somehow corrupted. Just tried it with a new one and the upload works. Sorry for the inconvenience.

It seems that since the last time I used foundry my chrome-profile got somehow corrupted. Just tried it with a new one and the upload works. Sorry for the inconvenience.

It seems that since the last time I used foundry my chrome-profile got somehow corrupted. Just tried it with a new one and the upload works. Sorry for the inconvenience.


spec: document nil checks for value methods

What version of Go are you using (go version)?

go version go1.12 linux/amd64

What did you do?
package main

import (
	"fmt"
)

type S struct {}

func (S) M(n int) {
	fmt.Println(n)
}

type T struct {
	*S
}

type I interface {
	M(n int)
}

func foo() {
	var v = &T{}
	var i I = v
	f := i.M // ok
	v.S = &S{}
	f(111) // 111
}

func bar() {
	var v = &T{}
	f := v.M // panic
	v.S = &S{}
	f(111)
}

func main() {
	foo()
	bar()
}

What did you expect to see?
Same behavior
What did you see instead?
Different behaviors.

This is another bug I found in playing with this one https://github.com/golang/go/issues/32021, which is closed. But I think there is also an inconsistency between reflection and direct code.

It looks in interface method evaluation, only the first embedding level is reached, instead of reaching the deepest level.

import (
	"fmt"
)

type P struct {
}
func (P) M(n int) {
	fmt.Println(n)
}

type S struct {
	*P
}

type T struct {
	*S
}

type I interface {
	M(n int)
}

func foo() {
	var v = &T{}
	var i I = *v
	f := i.M // ok
	v.S = &S{}
	f(111) // 111
}

func bar() {
	var v = &T{}
	f := v.M // panic
	v.S = &S{}
	f(111)
}

func main() {
	foo()
	bar()
}

Sorry, there is mistake in the last example. Just ignore it.

/cc @ianlancetaylor

In the case f := v.M we check for a nil pointer at the point where we create the method value.  We do this  because checking for the nil pointer when the method value is invoked leads to a confusing backtrace.  In the case f := i.M we check that i is not nil, but we do not check that the value itself contains a nil pointer.
So this is working as expected, in order to avoid a nil dereference in a generated wrapper function, but, you're right, it's not completely consistent.

I would say this inconsistency needs to be documented better since it is surprising people who use Go. Please make this a documentation issue.

In my opinion, the inconsistency in https://github.com/golang/go/issues/32021 is more serious than the one is the current issue. I think, if it is possible, reflection code implementation and direct code implementation should be consistent with each other.
Personally, I prefer the current reflection implementation way.

If we document something, it would be a change to the language spec saying that you can not create a method value of a value method of a nil pointer, and you can not create a method value of a promoted method of an embedded pointer if the pointer is nil.  To put it another way, all nil checks are done when the method value is created, not when it is invoked.
For interface types, you can not create a value method if the interface value is nil.  However, we do not check anything about the value stored in the interface value, and I'm not sure that we can.

CC @griesemer

I think this i clear in the spec for this behavior:

As with selectors, a reference to a non-interface method with a value receiver using a pointer will automatically dereference that pointer: pt.Mv is equivalent to (*pt).Mv.

As with method calls, a reference to a non-interface method with a pointer receiver using an addressable value will automatically take the address of that value: t.Mp is equivalent to (&t).Mp.

Also #47863 added example for how receiver is evaluated, can we close this issue now? cc @griesemer @mdempsky @ianlancetaylor


Workaround for SWARM-1500

Signed-off-by: Scott Stark<EMAIL_ADDRESS>

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Okay to test


Delete the implementation of DML backend and disable CI

PTAL, I will rebase PR https://github.com/webmachinelearning/webnn-native/pull/287 on this. @fujunwei @bbernhar

@mingmingtasd Please also update README.md by removing DML information from CI status table, thanks.


RFC: cargo-sbom

This RFC adds an option to Cargo that emits a Software Bill of Materials (SBOM) alongside compiled artifacts. Similar to how Cargo emits split debug info or "dep-info" (.d) files, this change emits an SBOM in a Cargo-specific format alongside outputs in the target directory. External tooling or Cargo subcommands can consume this Cargo SBOM file and transform it into other SBOM formats such as SPDX or CycloneDX.
Originally posted on internals as a pre-RFC, now moved to an RFC.
Rendered

I am wondering what this is worth at all. If there is the slightest chance to fake this, it's less meaningful. E.g. build.rs calls cargo differently and writes the file itself. Or a test alters it, after cargo build finishes. Detectable by code review, of course. But if downstream trusts the SBOM, that might take time to be discovered.
Say there's an exploitable dependency and it takes a newer version to fix that. But an artifact wants to provide that exploitability while pretending not to have it. Easy, if it fakes the SBOM to declare the newer version, while Cargo.toml uses the older one.
OTOH, if I am wrong, and SBOM were ok: Features matter! The used crates can be vulnerable or not, depending on which features are activated.

I am wondering what this is worth at all. If there is the slightest chance to fake this, it's less meaningful. E.g. build.rs calls cargo differently and writes the file itself. Or a test alters it, after cargo build finishes. Detectable by code review, of course. But if downstream trusts the SBOM, that might take time to be discovered.
Say there's an exploitable dependency and it takes a newer version to fix that. But an artifact wants to provide that exploitability while pretending not to have it. Easy, if it fakes the SBOM to declare the newer version, while Cargo.toml uses the older one.
OTOH, if I am wrong, and SBOM were ok: Features matter! The used crates can be vulnerable or not, depending on which features are activated.

At some point, you have to trust something.  You also have to deal with the chain of trust after this file is written.
For tests, I at least assume people are most likely to read this file in dedicated "production build" jobs which, in my experience, do not run tests.
For build.rs, this file is written at least after all are run from your dependencies.  I'm not too sure if it will be written before your own build.rs but, if you can't trust that, then you can't trust people working with the file after its written.

I am wondering what this is worth at all. If there is the slightest chance to fake this, it's less meaningful. E.g. build.rs calls cargo differently and writes the file itself. Or a test alters it, after cargo build finishes. Detectable by code review, of course. But if downstream trusts the SBOM, that might take time to be discovered.
Say there's an exploitable dependency and it takes a newer version to fix that. But an artifact wants to provide that exploitability while pretending not to have it. Easy, if it fakes the SBOM to declare the newer version, while Cargo.toml uses the older one.
OTOH, if I am wrong, and SBOM were ok: Features matter! The used crates can be vulnerable or not, depending on which features are activated.

At some point, you have to trust something. You also have to deal with the chain of trust after this file is written.
For tests, I at least assume people are most likely to read this file in dedicated "production build" jobs which, in my experience, do not run tests.
For build.rs, this file is written at least after all are run from your dependencies. I'm not too sure if it will be written before your own build.rs but, if you can't trust that, then you can't trust people working with the file after its written.

If what you are looking for is a guarantee that a generated dependency list is the one generated for the binary, from inception to your system, then this is not that feature.  #2801 isn't even that feature (atm).

I am wondering what this is worth at all. If there is the slightest chance to fake this, it's less meaningful. E.g. build.rs calls cargo differently and writes the file itself. Or a test alters it, after cargo build finishes. Detectable by code review, of course. But if downstream trusts the SBOM, that might take time to be discovered.

This RFC is intended to expose accurate dependency information for other tools to consume. It's not intended to guard against malicious crates or build scripts. SBOMs are only part of the solution to software supply chain security.

Is the premise here that cargo metadata or similar does not give enough information for this to be implemented fully as a crate (such as for cargo-bom)? Or that it should be maintained by the rust project itself?
It just seems like something that should be an installable cargo command (like cargo install cargo-sbom which would give cargo-sbom).

Is the premise here that cargo metadata or similar does not give enough information for this to be implemented fully as a crate (such as for cargo-bom)? Or that it should be maintained by the rust project itself?
It just seems like something that should be an installable cargo command (like cargo install cargo-sbom which would give cargo-sbom).

I feel like this is covered in Alternatives, particularly:

Unfortunately it's difficult to extract accurate SBOM information with existing options. Using the Cargo.lock file or cargo metadata overincludes dependencies. Additionally, since Cargo has many different commands that produce compiled artifacts (build, test, bench, etc.) and each of these commands take arguments that can affect the dependency list it's difficult to ensure that the correct dependency list is used.

This is basically a dump of cargo's unit graph at the end of the build so other people can build their own tools on top of this.  There is no other way to get information like this at this time.
This also opens the door for build.rs to inject data so information about non-Rust dependencies can be included.  There is currently no mechanism for other tools to collect side channel information from build.rs.

I think some of the questions around possible adversarial manipulation of SBOM data are basically asking for a threat model. Do we expect packages to be malicious, do we do anything to protect against malicious action by them? It's probably worth writing down explicitly in the RFC (I'm interested in helping if help is desired), at least so there's clarity.

I think some of the questions around possible adversarial manipulation of SBOM data are basically asking for a threat model. Do we expect packages to be malicious, do we do anything to protect against malicious action by them? It's probably worth writing down explicitly in the RFC (I'm interested in helping if help is desired), at least so there's clarity.

We could start with something like:

Cargo's SBOM provides an accurate report of the components and dependencies used by cargo to build a software artefact. These components and dependencies are trusted to:

report transitive dependencies accurately,
report components they use accurately, and
accurately modify the SBOM precursor written by cargo, or preserve it without modification.

cargo does not defend against malicious components or dependencies changing the SBOM, or accidentally or maliciously concealing themselves from the SBOM. In particular, cargo may not include components or dependencies added by build scripts or external tools. Ideally, tools should provide their own SBOMs, and build scripts should modify the SBOM via supported cargo interfaces.

In the Pre-RFC I saw this referred to as an "SBOM fragment". Would using that language help with some of the worries and confusion between regulatory SBOM, existing SBOM formats, and data that is easiest to access from Cargo?

What are the next steps and approximate timeline for this to be merged?


Just getting started and having trouble with URLs

I'm trying to follow the Bot Registration steps at https://github.com/microsoftgraph/microsoft-graph-comms-samples/blob/master/Samples/V1.0Samples/LocalMediaSamples/PolicyRecordingBot/README.md
For step 1, I don't know what I'm supposed to put in place of {your domain}. For step 3, I don't know what to put for callback URL. Perhaps I'm starting in the wrong place. Am I supposed to have something else set up first?

Im having same issues and no one on here has any idea.
as far as i understand it the docs say the DNS name and Cname need to be the same this is wrong if your not using your own domain and using the default cloudapp.net domain.
DNS name would be
yourbot.cloudapp.net
Cname would be
Yourbot.yourtenantdomain.whatever  this would be the domain in your wildcard cert and usually the one your teams users use.
you then need to create a CName in external DNS pointing
yourbot.yourtenantdomain.whatever  to yourbot.cloudapp.net
this is how i understanding it
issue i have is when i publish the sample the CRworker role keeps rebooting complaining about hostname
Unhandled Exception: No such host is known at System.Net.Dns.GetAddrInfo(String name) at System.Net.Dns.InternalGetHostByName(String hostName, Boolean includeIPv6) at System.Net.Dns.GetHostEntry(String hostNameOrAddress) at

forgot to say
the webhook for calling section of your Bot should malways point to your Cname
https://yourbot.yourtenantdomain.whatever/api/calling

https://ucstatus.com/2020/02/24/how-to-set-up-verint-verba-recording-for-microsoft-teams/ these instructions explain thinks a bit better just ignore all the vebra stuff. there recorder is terrible so dont give in build your own...

The DNS name is actually your custom domainname is, and it is not the cloudapp.net

that is incorrect actually. microsoft graph lives on the cloudapp.net domain
to be clear DNS name is always<EMAIL_ADDRESS>and cname is always bot.yourdomain.com pointing to bot.cloudapp.net
you cannot use custom domain for A record Microsoft dont allow its
custom domain is used by use of Cname

yes, you are right.  I did get them backwards....


Sync check script for HTML Publications

Also handle exceptions in sync check scripts. If a check raises an exception, report the error as normal but continue
the script.

Nice exception handling changes :+1:


DA pipeline should fail if re-weighting adapter is used without estimator accepting weights

Otherwise the adaptation doesn't really happen at all.
To make this happen, one needs to update the process of updating routing params within selectors so that if AdaptationOutput contains sample_weight key it asserts that the final estimator actually requested those. It might be tricky to do, and the check should likely happen at the final stage.

Hi,
I may have a suggestion for the sample_weight request for the estimator with re-weighting method. We can use the inspect library to check if the base_estimator handles sample_weight or not, (in the __init__ of the class, I think):
fit_args = [p.name for p in inspect.signature(self.base_estimator.fit).parameters.values()]

if "sample_weight" in fit_args:
     self.estimator_use_sample_weight_ = True
else:
     self.estimator_use_sample_weight_ = False

If the estimator does not handle sample_weight, we can either raise an error or perform bootstrap, as done in AdaBoostRegressor, cf. #L1149, in which case, we may warn the user that bootstrap is performed ?
What do you think ?

@antoinedemathelin I partially answered this in #89
I think I will write a much longer explanation in Slack shortly, as I understand the confusion. The routing in sklearn does use inspect to compile a list of rules how objects should interact. We should not try to come up with own logic for this, it will make things harder. This is the documentation from sklearn, it uses sample_weight almost exclusively to explain how different use cases should be handled by the user. And there are quite a few of them. The basic still boils down to
lr = LogisticRegression().set_fit_request(sample_weight=True)

If we try to be smarter and guess up front what the user wants, we immediately bump into the fact that many (most?) estimators that work with weights could also work without them. Which mean that the function signature includes sample_weight parameter. In the pipeline there's no way to tell where weights given by the user should go. Maybe there's a transformer there which consumes those, and everything else works w/o weights. The flexibility of combining things together makes it hard, and fundamentally this was the reason to introduce routing mechanism in the first place.

Thank you for the response,
Yes, I think, you have right, I didn't know this Metadata Routing API from sklearn...
Bootstrapping can mislead the user in some cases, indeed... But for me, it is still annoying that I cannot use sample_weight with KNeighborsClassifier for instance, while it seems very straight-forward to handle...


add help text to dockerfile path field

Fixes

Description

Add help text to the dockerfile path field and update the label from Docker file path => Dockerfile path.
Type of change

[x] Documentation content changes

Screen shots / Gifs for design review

How to test or reproduce?

/cc @elsony @christianvogt


feat(Topology/UniformSpace/AbstractCompletion):add comparison lemma

Add a lemma showing that composing the comparison maps with a continuous function to a T3 space satisfying some conditions yield the same function.
Co-authored  with : María Inés de Frutos Fernández @mariainesdff

I have addressed @urkud 's comments, but I had a private DM with @PatrickMassot who thinks the result is too specialized. IMHO it is OK and it is at the same time useful to have this comparison result, stated under quite general assumptions, but not too general as to be practically unapplicable (I will indeed need it in a later PR proving an equivalence between Laurent series and the X-adic completion of rational functions). I wonder how to advance now.

bors r+


is Dark Mode supported?

Is there any possible way to style this component so that it can adapts to dark mode? It seems that the text is transparent if the date is not today.
lightmode:

darkmode:

Dark mode comes from your own Mui theme setup https://mui.com/material-ui/customization/dark-mode/
Switching dark mode in you own theme provider will automatically includes the calendar.


Failed to import react 18.2.0 types

Failing module
import React from<EMAIL_ADDRESS>import ReactDOMServer from<EMAIL_ADDRESS>
Error message
Related with https://github.com/lumeland/lume/issues/237
Looks like the types of React 18.2.0 don't exists, so Deno is continuously trying to download them
Download https://esm.sh/v90/<EMAIL_ADDRESS>Download https://esm.sh/v90/<EMAIL_ADDRESS>Download https://esm.sh/v90/<EMAIL_ADDRESS>Download https://esm.sh/v90/<EMAIL_ADDRESS>
Maybe esm should detect the absence of types to don't include them if they don't exist. Or download the latest available version of types (react 18.0).
Additional info

esm.sh version: 90
Deno version: 1.24.2

this should be fixed in v91 updates, can you please try again?

Seems to work fine. Thanks!


Text-to-Speech problem

Hi,
I am trying to use this model with fairseq:
https://huggingface.co/facebook/tts_transformer-zh-cv7_css10
I am using the following code snippet for the model download and initialization:
from fairseq.checkpoint_utils import load_model_ensemble_and_task_from_hf_hub
from fairseq.models.text_to_speech.hub_interface import TTSHubInterface
models, cfg, task = load_model_ensemble_and_task_from_hf_hub(
    "facebook/tts_transformer-zh-cv7_css10",
    arg_overrides={"vocoder": "hifigan", "fp16": False}
)
model = models[0]
TTSHubInterface.update_cfg_with_data_cfg(cfg, task.data_cfg)
generator = task.build_generator(model, cfg)

But running this code, I just get an error:
"TTSTransformerModel object is not subscriptable".
If I replace model with models in the build_generator, like this:
generator = task.build_generator(models, cfg)

then the initialization will go through, but then I will get an error during the Text-to-Speech process.
The code snippet for this part is the following:
text = "您好，这是试运行。"
sample = TTSHubInterface.get_model_input(task, text)
wav, rate = TTSHubInterface.get_prediction(task, model, generator, sample)

And I will get the following error within the get_prediction:
"Input type (torch.FloatTensor) and weight type (torch.cuda.FloatTensor) should be the same".
Any suggestion or idea how I can get this work? Or where can I find an example?
Thanks!
The environment is the following:

fairseq Version: main
PyTorch Version: 1.8.1+cu111
OS (e.g., Linux): Ubuntu 18.04
How you installed fairseq (pip, source): from source
Build command you used (if compiling from source): pip install --editable ./
Python version: 3.7.12
CUDA/cuDNN version: 11.1.1
GPU models and configuration: NVIDIA A100

@kormoczi Thanks very much for reporting the issue! We will take a look shortly.

Hi @kormoczi , can you add
from fairseq.utils import move_to_cuda
sample = move_to_cuda(sample) if torch.cuda.is_available() else sample

to move input tensors to GPU?
generator = task.build_generator(models, cfg) is the right one. Sorry for the confusion. We will update the code snippet accordingly.

Hi @kahne,
I have added this move_to_cuda() line, but I just received a new error:
RuntimeError: Input, output and indices must be on the current device

on the line TTSHubInterface.get_prediction().
I have tried to use this move_to_cuda() function on the other components as well (models, generator, etc.), but it did not helped, unfortunately.
Please advise, what shall I do!
Thanks!

May I ask some help on this?

Using your code snippet (with the above corrections), I get the following error:
RuntimeError: Input type (torch.FloatTensor) and weight type (torch.cuda.FloatTensor) should be the same or input should be a MKLDNN tensor and weight is a dense tensor
The code used
from fairseq.checkpoint_utils import load_model_ensemble_and_task_from_hf_hub
from fairseq.models.text_to_speech.hub_interface import TTSHubInterface
import IPython.display as ipd

models, cfg, task = load_model_ensemble_and_task_from_hf_hub(
    "facebook/tts_transformer-fr-cv7_css10",
    arg_overrides={"vocoder": "hifigan", "fp16": False}
)

model = models[0]
TTSHubInterface.update_cfg_with_data_cfg(cfg, task.data_cfg)
generator = task.build_generator(models, cfg)

text = "Bonjour, ceci est un test."
sample = TTSHubInterface.get_model_input(task, text)
wav, rate = TTSHubInterface.get_prediction(task, model, generator, sample)

ipd.Audio(wav, rate=rate)

@kahne now I get this bug:

Making some progress, but not too much: @kahne

Finally this worked (the problem was related to IPython.display.Audio not liking the wav variable was on device cuda:0):

我在运行示例代码时，也发生了类似的问题

运行没抛异常，但是没声

Replace:
generator = task.build_generator(model, cfg)
by:
generator = task.build_generator([model], cfg)

the following python code works after some modification：
from fairseq.checkpoint_utils import load_model_ensemble_and_task_from_hf_hub
from fairseq.models.text_to_speech.hub_interface import TTSHubInterface
import IPython.display as ipd
from IPython.display import Audio
from scipy.io.wavfile import write as write_wav
import ipywidgets as ipw
from IPython.display import display, Audio
import torch
models, cfg, task = load_model_ensemble_and_task_from_hf_hub(
"facebook/tts_transformer-zh-cv7_css10",
arg_overrides={"vocoder": "hifigan", "fp16": False}
)
model = models[0].cuda()
#model = models
TTSHubInterface.update_cfg_with_data_cfg(cfg, task.data_cfg)
#generator = task.build_generator([model], cfg)
generator = task.build_generator([model], cfg)
text = '''
新华社北京8月16日电（记者董雪、马卓言）针对近期少数西方政客和媒体称，中国经济增长放缓可能对全球经济发展构成风险。外交部发言人汪文斌16日在例行记者会上答问时说，这种论调有悖事实，中国经济持续恢复，总体回升向好，依然是世界经济增长的重要引擎。
'''
#sample = TTSHubInterface.get_model_input(task, text)
sample = TTSHubInterface.get_model_input(task, text)
sample["net_input"]["src_tokens"] = sample["net_input"]["src_tokens"].cuda()
sample["net_input"]["src_lengths"] = sample["net_input"]["src_lengths"].cuda()
sample["speaker"] = sample["speaker"].cuda()
wav, rate = TTSHubInterface.get_prediction(task, model, generator, sample)
Assuming wav is a tensor on the GPU
Move the tensor from GPU to CPU
wav_cpu = wav.to('cpu')
ipd.Audio(wav_cpu.numpy(), rate=rate)
write_wav("audio1.wav", rate, wav_cpu.numpy())


Events show command should include severity and description

When using the lacework API you should see the same data that is provided in the triage card for the event.
Currently missing data as listed in the UI

Description
Severity

Closing as events command no longer exists


Error: couldn't connect to server Caused By Connection Refused

Is this a BUG REPORT or FEATURE REQUEST? (choose one):
Bug

Version of Helm and Kubernetes:
KubeCtl version 1.10.3
Helm ClientVersion 2.10, ServerVersion 2.10
Which chart:
MongoDB
What happened:
Liveness Probe fails with Connection failed. and pod dies
What you expected to happen:
There not to be a connection issue.
How to reproduce it (as minimally and precisely as possible):
Install helm MongoDB on fresh install of Docker for Windows
Anything else we need to know:
Using Docker for Windows with Kubernetes
The Logs are below
`λ kubectl describe pod my-release-mongodb-67d97864bb-vxvlp
Name:           my-release-mongodb-67d97864bb-vxvlp
Namespace:      default
Node:           docker-for-desktop/<IP_ADDRESS>
Start Time:     Tue, 28 Aug 2018 23:23:25 -0400
Labels:         app=mongodb
chart=mongodb-4.2.0
pod-template-hash=2385342066
release=my-release
Annotations:
Status:         Running
IP:             <IP_ADDRESS>
Controlled By:  ReplicaSet/my-release-mongodb-67d97864bb
Containers:
my-release-mongodb:
Container ID:   docker://b8358998b177b9cbae59647238ce4d69e9a8bb64c1a833b63e33f31685d0dde2
Image:          docker.io/bitnami/mongodb:4.0.1-debian-9
Image ID:       docker-pullable://bitnami/mongodb@sha256:8620699e9c7e9368330a7f36d6b18d375fdd9fff3c8cb9fb4fa77316c242099e
Port:           27017/TCP
Host Port:      0/TCP
State:          Running
Started:      Wed, 29 Aug 2018 11:17:23 -0400
Ready:          False
Restart Count:  29
Liveness:       exec [mongo --eval db.adminCommand('ping')] delay=30s timeout=5s period=10s #success=1 #failure=6
Readiness:      exec [mongo --eval db.adminCommand('ping')] delay=5s timeout=5s period=10s #success=1 #failure=6
Environment:
MONGODB_ROOT_PASSWORD:  <set to the key 'mongodb-root-password' in secret 'my-release-mongodb'>  Optional: false
MONGODB_USERNAME:
MONGODB_DATABASE:
MONGODB_EXTRA_FLAGS:
Mounts:
/bitnami/mongodb from data (rw)
/var/run/secrets/kubernetes.io/serviceaccount from default-token-4ddm7 (ro)
Conditions:
Type           Status
Initialized    True
Ready          False
PodScheduled   True
Volumes:
data:
Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
ClaimName:  my-release-mongodb
ReadOnly:   false
default-token-4ddm7:
Type:        Secret (a volume populated by a Secret)
SecretName:  default-token-4ddm7
Optional:    false
QoS Class:       BestEffort
Node-Selectors:
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events:
Type     Reason                 Age                  From                         Message

Normal   Pulling                10h (x16 over 11h)   kubelet, docker-for-desktop  pulling image "docker.io/bitnami/mongodb:4.0.1-debian-9"
Warning  BackOff                10h (x464 over 11h)  kubelet, docker-for-desktop  Back-off restarting failed container
Normal   SuccessfulMountVolume  39m                  kubelet, docker-for-desktop  MountVolume.SetUp succeeded for volume "pvc-dec33566-ab3a-11e8-ab3b-00155d016b17"
Normal   SuccessfulMountVolume  39m                  kubelet, docker-for-desktop  MountVolume.SetUp succeeded for volume "default-token-4ddm7"
Normal   SandboxChanged         39m                  kubelet, docker-for-desktop  Pod sandbox changed, it will be killed and re-created.
Normal   Created                38m                  kubelet, docker-for-desktop  Created container
Normal   Started                38m                  kubelet, docker-for-desktop  Started container
Warning  Unhealthy              37m                  kubelet, docker-for-desktop  Liveness probe failed: MongoDB shell version v4.0.1
connecting to: mongodb://<IP_ADDRESS>:27017
2018-08-29T14:40:18.501+0000 E QUERY    [js] Error: couldn't connect to server <IP_ADDRESS>:27017, connection attempt failed: SocketException: Error connecting to <IP_ADDRESS>:27017 :: caused by :: Connection refused :
connect@src/mongo/shell/mongo.js:257:13
@(connect):1:6
exception: connect failed
Warning  Unhealthy  37m  kubelet, docker-for-desktop  Readiness probe failed: MongoDB shell version v4.0.1
`

Hello @antonyRoberts ,
Do you solved thiw issue?


Allow notifications for systems without graphical capabilities

Solves #80.
@frederickjh Would you like to test this?

@ammgws Thanks for your work on this. I set this up on a remote server to test.
I copied done.fish from your pull repository and installed fishpkg/fish-humanize-duration.  I then set:
# Set up done for remote notitfication via Telegram
set -U __done_allow_nongraphical 1
set -U __done_notification_command "ta \$title \$message"

Running a command longer than the default 5 seconds would generate a notification via my ta.fish function using Telegram.
I then increased the time before done sends a message to one minute with:
# in milliseconds time before done sends a message
set -U __done_min_cmd_duration 60000

This works as we discussed in #80.
I also added:
## Commands not to send done messages for. Accepts a regex
# all git commands, except push and pull.
# nano
set -U __done_exclude 'git (?!push|pull)|nano'

As who wants to be notified when the finish a long edit on a document?
Consider adding something like the following to the documentation section Prevent specific commands from triggering notifications. Accepts a regex. something like:

Useful with  set -U __done_allow_nongraphical 1 to prevent notifications for commands normally run interactively that you do not want to get done notifications for.

All in all a  :+1:, thanks!

Good to know it's working!
I'll leave docs up to @franciscolourenco as I think it's fine

I'll leave docs up to @franciscolourenco as I think it's fine

I found this blog post that says with X11 forwarding turned on for a SSH connection that that notify-send should send the alert on the local machine from the remote ssh session.
I have not yet had time to test this with done  but the blog post says the code they are using ,which was added to fish_prompt.fish, should be added to the Fish shell on the remote host for this to work.
### Notify on long command completion

# If commands runs >= 10 seconds, notify user on completion
if test $CMD_DURATION
    if test $CMD_DURATION -gt (math "1000 * 10")
        set secs (math "$CMD_DURATION / 1000")
        notify-send "$history[1]" "Returned $status, took $secs seconds"
    end
end

If this works with done I think that it would be a good idea to add this to the documentation.

If it works you should open another PR for adding it to the docs

If it works you should open another PR for adding it to the docs

@ammgws If it was only that simple. I could not get this to work between two Ubuntu machines. One 16.04 and the other 18.04. I tried a number of settings locally in the ~/.ssh/config file and the remote /etc/ssh/sshd_config but could not get this working even thought X11 forwarding is working to start a GUI program on the remote server and have it appear locally in a window to work on.
The notifications are sent via the DBUS. I tried setting the DBUS_SESSION_BUS_ADDRESS environmental variable but this too did not work. I have gone back to using done with my custom command that sends the notifications via a Telegram chat.
If someone smarter that me can figure this out so that it can be documented, so be it. :wink: :sunglasses: :angel:

Closing due to inactivity
Sorry @frederickjh !

@ammgws What is the status of this? Is it working, reliable?

I made this for @frederickjh, so will need his input

@franciscolourenco and @ammgws Sorry I didn't realize that more input was needed from me. I thought that my comments above were clear as to the status of this pull request.
To summarize what I stated above:

I tested this and it works. I am using a custom command (per the issue request #80) that posts to Telegram.
What I tried that did not work, which is outside the scope of the issue is using the X10 forwarding via SSH.
I would add this pull request to the project, as it is documented and ready to be committed.

Actually there was one thing I thought should be added to the documentation. From above:

Consider adding something like the following to the documentation section Prevent specific commands from triggering notifications. Accepts a regex. something like:

Useful with  set -U __done_allow_nongraphical 1 to prevent notifications for commands normally run interactively that you do not want to get done notifications for.

@ammgws I've had a look at the PR and it looks good, so I would be up for merging this. Do you think it makes sense to add what @frederickjh to the docs, and if so would you mind doing it? Thanks!

Any reason @franciscolourenco this has not yet been merged in? Looks like this has everything to close #80.

Any reason @franciscolourenco this has not yet been merged in? Looks like this has everything to close #80.

Sorry, only was able to get to this.

Sorry, only was able to get to this.

No problem @franciscolourenco.  Sometimes life happens.

No problem @franciscolourenco.  Sometimes life happens.


feature: gitVersion v2.0.0-200-gc771ae9

https://github.com/RfidResearchGroup/ChameleonUltra/compare/3cadd47...c771ae9

max frame size is 512, MF0_NTAG_READ_EMU_PAGE_DATA should be check

try to read pm3 code.


Open SSH session from remote shell fails

When attempting to open an SSH session from a remote shell, the instructions fail me with the command
az webapp remote-connection create --subscription <subscription_id> --resource-group <group_name> -n <app_name> -p <port> &
I get an error returned of
connect_ex() takes exactly one argument (2 given)
Traceback (most recent call last):
  File "/opt/az/lib/python3.6/site-packages/knack/cli.py", line 197, in invoke
    cmd_result = self.invocation.execute(args)
  File "/opt/az/lib/python3.6/site-packages/azure/cli/core/commands/__init__.py", line 369, in execute
    six.reraise(*sys.exc_info())
  File "/opt/az/lib/python3.6/site-packages/six.py", line 693, in reraise
    raise value
  File "/opt/az/lib/python3.6/site-packages/azure/cli/core/commands/__init__.py", line 343, in execute
    result = cmd(params)
  File "/opt/az/lib/python3.6/site-packages/azure/cli/core/commands/__init__.py", line 182, in __call__
    return self.handler(*args, **kwargs)
  File "/opt/az/lib/python3.6/site-packages/azure/cli/core/__init__.py", line 436, in default_command_handler
    result = op(**command_args)
  File "/home/aaron/.azure/cliextensions/webapp/azext_webapp/custom.py", line 214, in create_tunnel
    tunnel_server = TunnelServer('', port, host_name, user_name, user_password)
  File "/home/aaron/.azure/cliextensions/webapp/azext_webapp/tunnel.py", line 42, in __init__
    if self.local_port != 0 and not self.is_port_open():
  File "/home/aaron/.azure/cliextensions/webapp/azext_webapp/tunnel.py", line 69, in is_port_open
    if sock.connect_ex('', self.local_port) == 0:
TypeError: connect_ex() takes exactly one argument (2 given)

Any ideas? Thanks.

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

ID: 1b4f27ae-bfd4-6663-13ce-c3d0b40326e3
Version Independent ID: 892091ad-f470-d715-ac5b-6b487640a88e
Content: SSH support for Azure App Service on Linux
Content Source: articles/app-service/containers/app-service-linux-ssh-support.md
Service: app-service
GitHub Login: @wesmc7777
Microsoft Alias: wesmc

@Gonkers Hi, looks like there is an error in the article.  You need to leave off the -p port in the command. For example,...
az webapp remote-connection create --subscription subscription_id --resource-group group_name -n app_name &

#in-progress

Confirmed. This fixed my issue. Thanks!


added sub-uri fix by amelentjev (#472)

This fixes sub uri issue as described in #472.
It has been broken by c03f567b20ba8c4a88ea7560db95c9aa3b2c66d5.

Tested with Redmine v3.2.0 and v3.2.1.
Tested in root and in subdir.

Could someone comment why this still isn't merged/tagged?

I can confirm this issue is still present with Redmine 3.3.0 and plugin v1.2.1

Thank you and sorry for the delay, I've been a bit busy :)


List available modules and generators

Changes

List all available generators when the generate command is run with no arguments
List all modules when the add command is run with no arguments
Updates the ls command to list both modules and generators
Minor formatting tweaks so that logs look natural and match the indentation of --help
Removes the modules alias for the ls command. I initially wanted to add a second alias for generators, but only one alias is allowed. I removed it for consistency's sake, but let me know if I should add it back in 👍

I used a quick and dirty unique implementation since I think the number of generators will likely be small, but I'm happy to use a more optimal version if requested.
Resolves #2

Excellent work! Thanks so much :)


Use new custom triggers API to refactor existing playbooks

Today we try to write Robusta actions that can be re-used in multiple scenarios. For example, an action that fetches logs should be usable both in the case of a crashing pod and a prometheus alert.
In the past, we sometimes wrote actions that included triggering logic too. For example, the restart_loop_reporter action is connected to the trigger on_pod_update. This fires very frequently and not only when a pod restarts. Therefore the restart_loop_reporter action has triggering-logic which decides when the action should even do anything.
This breaks the normal separation of triggers and actions. To solve this problem, we introduced the ability to write custom triggers. For example, you can write a crashloop_backoff trigger which inherits from on_pod_update and only fires on pod updates which are due to a crashing pod.
We should rewrite old actions to use the new custom-triggers API. This will lead to more re-usable code.
Actions to rewrite:

restart_loop_reporter - should be just a logs_enricher action (already exists) and a new on_restart_loop custom trigger
alert_on_hpa_reached_limit - should be a offer_to_resize_hpa action and a new on_hpa_max custom trigger

Hey @aantn I'm interested in this issue but having some doubts in it:

I was observing restart_loop_reporter file but can't find logs_enricher in there.
Also I'm not able to find alert_on_hpa_reached_limit file or any python file related to hpa.

@chetak123 yeah, the logs_enricher is indeed in a different file.
It would probably be easier to start with alert_on_hpa_reached_limit over here.


Add Discord PTB 0.0.52

Auto Generated by softcreatr@winget on Tue, 26 May 2020 06:05:53 +0000
Microsoft Reviewers: Open in CodeFlow

Duplicate of #1027

Would be nice if someone would start reviewing PRs 😁


⚠ Bofrost.at has degraded performance

In 9db5975, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1900 ms

Resolved: Bofrost.at performance has improved in d245cb7 after 16 minutes.


[BUG] Fix default conformal intervals initial_window parameter

Reference Issues/PRs
Fixes #2889
What does this implement/fix? Explain your changes.
Sets default initial_window to either 10 or 10% of the data (whichever is higher) and allows either an integer or a float to be passed
What should a reviewer concentrate their feedback on?
Is the choice of default the right one? I'm not sure we can have a foolproof default but this should solve most cases.
PR checklist

For all contributions

[ ] I've added myself to the list of contributors.
[ ] Optionally, I've updated sktime's CODEOWNERS to receive notifications about future changes to these files.
[ ] I've added unit tests and made sure they pass locally.
[ ] The PR title starts with either [ENH], [MNT], [DOC], or [BUG] indicating whether the PR topic is related to enhancement, maintenance, documentation, or bug.

For new estimators

[ ] I've added the estimator to the online documentation.
[ ] I've updated the existing example notebooks or provided a new one to showcase how my estimator works.

I think the problem might be that the fraction computation is not correct in the case of datetimes.


⚠ Bofrost.at has degraded performance

In dc001e4, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1498 ms

Resolved: Bofrost.at performance has improved in 1e81c59.


Fixing is-visible/is-not-visible assertions to correctly account for missing elements

This PR is attempting to do two main things:

Fixing the logic in is-visible/is-not-visible to account for when elements are missing in the DOM

these assertions would trigger the Element <el> exists assertion that was triggered when an element was not found in the DOM, regardless of correctness
is-visible should pass in the case where the element exists and is visible
is-visible should fail in the case where the element doesn't exist or is not visible
is-not-visible should pass in the case where the element doesn't exist or is not visible
is-not-visible should fail in the case where the element exists and is visible

Updating the assertion message when an element is not present but is expected to be so

the old assertion was Element <el|unknown> exists, which was mildly confusing
the new assertion message is Element <el|unknown> should exist.

This PR in part addresses #84.

@Turbo87 - I think we may want to address this sooner rather than later, as the assertions are currently broken.

@rwjblue added the comment to cross-reference the tests in their various locations.

Also, I do think that this fully addresses #84. It both tweaks the assertion of findTargetElement and makes assert.dom('.foo').isNotVisible() actually function properly (e.g. it passes when .foo is not present).

Ya I was more speaking that this PR does more than what's needed in #84, hence partial. English is hard...

@scalvert we're pretty busy with JSConf EU prep at the moment. It will likely take until next week before I have time for a proper review. On first glance it seems that the PR is trying to solve multiple things in parallel. Can you extract the Element <el|unknown> should exist change into a separate PR?

Yep. I definitely conflated the changes in this PR. Will extract.


Skip github hook on instance finished

PRs that do not follow the template will be automatically closed

References

[ ] I have updated the documentation. PR link <here>
[ ] I have added included automated tests or evidence that it's working
[ ] I acknowledge that I have tested that the change is backwards-compatible
[ ] Original issue / feature request / discussion: <here>

Use case

Describe the use-case in details

Example

Submit screenshots / outputs / tests together with the PR.

:wave:


new rule: check abapdoc parameter consistency

new rule: check abapdoc parameter consistency

hint: for each ABAPFile, call the ABAPFile.getInfo() method, it should contain everything to implement this check

I'm not convinced this is necessary, would be inclined to switch off.
Guideline is to have as few parameters as possible, and if they're clear and with proper typing (ddic / self-explanatory type names) then I don't see any value in documenting them.
ADT auto-generates the abapdoc template with parameters, I could add descriptions:

But it often just repeats what I can already see in the signature so if I'm not adding value then I find deleting cleaner:

Parameter documentations are certainly useful, but not everywhere.

I'm thinking in the direction of: method has only parameter "foo", parameter "bar" is documented => inconsistent as "bar" is not a parameter


Code Cleanup work

If you are not interested in accepting PRs, just let me know. However, if you are interested in taking PRs, do not merge this just yet, there is still more I would like to do to clean up the code, and it is not yet stable.
So far, the PR includes the following:

No dramatic changes to code style (e.g., bracing, indentation, etc) in an attempt to avoid cosmetic changes
No API changes (this is just meant to be cleanup/optimization)
Try to be as fast as possible (!x is faster than x==NULL but is logically equivalent)
Be consistent with types where possible (e.g., sizeof returns size_t, so when comparing it, you should use size_t instead of int)

I'm certainly interested in pull requests, and thanks very much for cleaning up my (rather poor) code. The one change I'd take minor issue with is the assignment change on the struct array in x11fs.c as this was originally designed to make the structure of the file hierarchy clear. However your way obviously makes it easier to tell which field is which, so maybe it's for the best. Other than that, please tell me when this is ready to be merged, thanks once again.

Sounds good! I will keep on cleaning things up (after this PR is closed, if you are interested, I may also look into adding better error handling which may involve an API change).
As for the struct array, I figured that was your intention (and that was the only cosmetic change I made really), but it made it dramatically more difficult to read. Plus, since the hierarchy is actually specified in the first field anyway, I do not feel that the visual alignment helped much.
However, this is your project; you are, of course, free to cherry pick commits that you like of mine!

All right; we are approaching completion. My tests suggest it is relatively stable (with obvious bits of breakage having been fixed). I want to walk through win_xcb.c a bit more to see if I can clean any of it up a bit more; but once that is done, I think it will be ready for merge.
However, I would strongly suggest, since there is no comprehensive test suite, that you personally test from my branch to see that it still works as you expect. If not, let me know and I'll look into fixing whatever you'd like.

The mapping of event -> struct is as follows:

Create: xcb_create_notify_event_t
Destroy: xcb_destroy_notify_event_t
Enter: xcb_enter_notify_event_t
Leave: xcb_leave_notify_event_t
Map: xcb_map_notify_event_t
Unmap: xcb_unmap_notify_event_t

Although enter and leave are identical structs, it's better to be clear though. :-)

Thanks for the warning. I guess the ones I was using previously were similar enough to not cause problems, but as you say, better to be clear.

I've been on HalosGhosts branch for a few days now, it's been solid for what I've been doing.

Changes added to correctly cast each event inside switch.

Was there anything else you wanted to do? Or am I OK to merge? Thanks for all your work by the way.

I want to walk through win_xcb.c once more (hopefully tomorrow) and clean it up a bit in similar ways as I did the other files before this behemoth gets merged :)
Also, I am more than happy to help! This is a really fun project, and I would like to see it reach a really stable and usable point.

@sdhand, this last one (and the next one I have planned) are perhaps a little more controversial. Tl;dr: instead of defining a bunch of functions that all do the same thing with a very small change, define a macro to declare a function which takes the argument that specifies the difference.
It allows for much less repetition (and for changes to be simply applied across all the related functions with one change, which is quite nice); but some people do not like macros.

This sounds great to me. I was trying to think of way of achieving something like this when writing it in the first place, but I didn't know enough about C macros to be able to come up with this solution.

I have a clarifying question. In some of the setters, you have used xcb_configure_window() and in others, you use xcb_change_window_attributes(). As far as I can tell from the man pages, the main difference is that the latter allows you to handle error-handling more manually (which, as far as I can tell, is not done in this repository). Is there another reason for using the later ever rather than always using the former?

xcb_configure_window() is for changing the window geometry and "physical properties" if you will. (From the documentation page: "Configures a window’s size, position, border width and stacking order.") xcb_change_window_attributes() is for just about everything else. This page lists the attributes that xcb_change_window_attributes() allows you to change: http://www.x.org/releases/current/doc/man/man3/xcb_change_window_attributes.3.xhtml

Good to know! I likely need to make a few changes to the first set of macro modifications (but I'm going to hopefully make them to be even more general so I can generate more code.

I was hoping I could generalize the macros so that raise, lower, subscribe and unsubscribe could be generated from the same ones, but this is not really doable without an API change. I can still generate them with a macro, of course, but it would be a new one, and the resulting difference in code is ~4 fewer sloc (i.e., I do not think moving them to a macro simplifies much without the API change—which, even if you are interested in, should not be in this PR).
At this point, I am ready for the PR to be merged. Just let me know if you see something broken first and I will take care of it!

@sdhand, the last change allowed me to add lower and raise to the generated setters without an API break (I just added lower and raise as convenience macro shortcuts to the new setter). This is an API change since a new function was added, though, so that should be considered.
I looked into converting subscribe and unsubscribe in this fashion, but it looks like because setters all xcb_flush(conn), that may not be possible.

I'm fairly sure subscribe() and unsubscribe() should actually call xcb_flush(conn), and omitting that is just an oversight on my part. Feel free to use a macro for them. Also, I think you should be able to add get_border_width as a getter as it works pretty much identically to all the other getters.

@sdhand, I tried adding subscribe() and unsubscribe() similar to lower()/raise() and cating out event seems to not work anymore. I will look into it further to see if it will work. and I will look into adding get_border_width() as a getter as well.

@sdhand, all right; that works for both afterall (I don't know what went wrong in my last test).

This is looking great, do you have anything left you want to do before I merge? I'll give it a quick test before I do, but currently the only commit I have any issue with is https://github.com/sdhand/x11fs/pull/1/commits/f45b7685d0ef59f761428cbdf447cebf9ab1baa0 . Personally I think it's much easier to tell what's going on with the ternary operator.

Nope, that's all. The motivation behind that commit is that it is a lot faster (but branchless alternatives can often be less clear).


Disable actor inference from property wrapper usage

This PR disables global actor inference based on a type's usage of property wrappers. It is part of the Swift Evolution proposal being pitched here.
Currently in Swift, if a type that uses a property wrapper with an actor-isolated wrappedValue, that type is itself inferred to be isolated to the same actor. This PR disables that behavior in the Swift 6 language mode. It also implements an -enable-upcoming-feature DisableActorInferenceFromPropertyWrapperUsage flag that can be used to get the same behavior in the Swift 5 language mode.

@swift-ci please smoke test

@swift-ci please build toolchain

@swift-ci please build toolchain macOS

@swift-ci please smoke test

@swift-ci please build toolchain

@swift-ci please smoke test

@swift-ci please smoke test


Demos in docs are still using print XXX, how about using print(XXX) for better python3 support?

I saw that Luigi says to be supporting both python2 and python3, but in the documents of Running from the Command Line, the demos are still using print in a way like "print self.x + self.y", which python3 doesn't support.
I'm using python3 and when I tried the demos, it gave me errors like this:
File "C:\python\my_module.py", line 9
print self.x + self.y
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(self.x + self.y)?

So I think using "print(self.x+self.y)" instead may be better, because print() function is supported by both python2 and python3.
By fixing this, the docs and demos could be more friendly to beginners :).
PS. This "print" may also exist in other documents, I think these should all be fixed.

Feel free to submit a PR to update Demos for Python3 support


"Seimeni" is listed in the drop-down menu

Description:
When user writes "Seimeni" the location appears in the drop-down menu next to the comune and the county which is a part according to the law
Precondition:
The website is up an running.

Step 1
Write in the search bar "Seimeni"

Expected results
The location appears in the drop-down menu as "Comuna Seimeni, CONSTANȚA"


Fixing "$1 not set" for HANDLER var

Just cloned your repository, configured config and all necessary files.
Started a test with dehydrated -f /etc/dehydrated/config -c and got the following
root@domain:/etc/dehydrated# /opt/dehydrated/dehydrated -f /etc/dehydrated/config -c
# INFO: Using main config file /etc/dehydrated/config
# INFO: Using additional config file /etc/dehydrated/hook.sh
/etc/dehydrated/hook.sh: Zeile 77: $1 ist nicht gesetzt.

So it seems that the script is called without parameter and got this exception. So I added in my pull request a simple if-else-statement!

I don't think it's worth merging this, that part of the example hook script should be written a lot cleaner anyway (like using a case-statement instead of just executing whatever is given as first parameter), thanks anyway.


Upgrade blog dependencies

Prompted by the fact that I am missing some gatsby-remark-prism deps which may have a solution for one of the style bugs I am fighting.

Resolved.


Add to NPM registry

Can you add this to the NPM registry so that I can use this in my project?

Considering that I currently don't have an option to run the build system it's extremely old (and probably wrong) data. So I'd rather not put it on npm. If you still need to use it, you can just add it as git dependency for npm. Command should be:
npm install soundofdarkness/warframe-relic-data

I hope that helps, and sorry for the late response.


Add mapping data structures

Problem
A common strategy that wil be present in our SSA module is:
pub struct Data;

pub struct DataId

Where data gets stored in some Arena/Map and the DataId is the reference to get the Data from the Arena/Map.
Proposed solution
Implement a common data structure to abstract away this information. Cranelift uses PrimaryMap and SecondaryMap.
Alternatives considered
No response
Additional context
No response
Submission Checklist

[X] Once I hit submit, I will assign this issue to the Project Board with the appropriate tags.

One can look at the Cranelift datastructures to figure out what the API should look like. An alternative is to use petgraph

For the record this is exactly the strategy we already have in the SSA module where data is stored in an Arena and referenced by its id being the index of the arena.


Compatible with ClamAV v102

I don't recommend accepting this as-is given my renaming of libcrypt, but this got ClamAV v102 working for me on Node 12. The changes below were to resolve a series of dependency issues I ran into. Clamav is handled differently because yum was downloading a version without libclamunrar_iface included. Let me know if you have any questions!

Made a few updates, this is what I'm going with for now on my project!

@statik good catch on http v https; updated one of them. Let me know if you have any other comments!

@statik unrelated to this PR - I noticed my lambda function using this layer and calling clamscan to inspect an uploaded file is taking about 30 seconds. Have you seen similar? This was a bit longer than I was expecting given my scanned file is pretty small.

@sethsacher thanks for this! That's interesting about the performance, I have not done any measurement but same as you it seems longer than I would have expected.


Client network config getConnectionTimeout/setConnectionTimeout symbols are not included when building without SSL

Corrected the network config cpp file so that the getConnectionTimeout and setConnectionTimeout are defined even when no ssl.

Test PASSed.


TMP: Always recreate transaction when signing

What's the timeline on this landing?

@vgrichina Keen to land this in this week's release unless there is an issue with this approach as a temporary fix?

People still have this issue: https://discord.com/channels/831453845833383957/831453846286106636/854319474827853855
Error: Transaction nonce 19 must be larger than nonce of the used access key<PHONE_NUMBER>0000

Also the nonce is really weird.


magic_enum does not seem to get installed at all

Describe the bug
magic_enum is a header-only package but the header file does not show anywhere in the install tree
Environment

OS: Win 10 64
Compiler: MSVC 2019 community edition

To Reproduce
Steps to reproduce the behavior:

./vcpkg install magic_enum
no error

Expected behavior
expect to have magic_enum.hpp installed in the install tree
Failure logs
-(please attached failure logs)
Additional context
Add any other context about the problem here.

since i am using magic enum i can tell you that it gets installed. And since I just did a rebuild of all of my dependencies today I can tell you that it works.
Also it is
./vcpkg install magic-enum
_ is not allowed in vcpkg

Thank you, that does make a difference and does install the header file.
Unsure of why I missed the error report, still,  using 'magic-enum' does
produce an error, but it also creates a directory magic-enum in
x86-windows/share
On Wed, Feb 16, 2022 at 12:39 PM Alexander Neumann @.***>
wrote:

since i am using magic enum i can tell you that it gets installed. And
since I just did a rebuild of all of my dependencies today I can tell you
that it works.
Also it is
./vcpkg install magic-enum
_ is not allowed in vcpkg
—
Reply to this email directly, view it on GitHub
https://github.com/microsoft/vcpkg/issues/23137#issuecomment-1042264037,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACFCLPAOSMZLWMDH7ZA54UTU3QDORANCNFSM5OSUIRGA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>

using 'magic-enum' does produce an error,

which says it cannot be found? probably because you want x64 and not x86: ./vcpkg install magic-enum:x64-windows

@tester0077 I can not repro your failure, magic_enum.hpp can be find in my install tree. could you check vcpkg\installed\x64-windows\include\magic_enum.hpp in your machine.

I only needed the x86 version at the time.
FWIW, I have still not decided to actually use this header permanently and
so have not worked with it since I first ran into this issue.
On Mon, Feb 21, 2022 at 6:13 PM Mengna Li @.***> wrote:

@tester0077 https://github.com/tester0077 I can not repro your failure,
magic_enum.hpp can be find in my install tree. could you check
vcpkg\installed\x64-windows\include\magic_enum.hpp in your machine.
—
Reply to this email directly, view it on GitHub
https://github.com/microsoft/vcpkg/issues/23137#issuecomment-1047360035,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACFCLPEQDECGWXPLLW3ZPYTU4LWK3ANCNFSM5OSUIRGA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>

If you installed magic-enum using ./vcpkg install magic-enum, you need to check the path vcpkg\installed\x86-windows\include\magic_enum.hpp. because the default platform is x86-windows.

We hope your question was answered to your satisfaction; if it wasn't, you can reopen with more info.


Find services without WiFi

Wifi on -> Find services
Wifi off, only 3G:

this.zeroconf.stop();
this.zeroconf.unwatch('_name._tcp.', 'local.');
After user press button, I reload everything, even bonjour (watch..)

BONJOUR FIND SAME SERVICES (as added)
Is there any kind of cache that it needs to be clean?

Nevermind! My mistake, it needed. this.zeroconf.close()


[iOS] Allow multiple category options

categoryOptions is an OptionSet, which means it can set multiple at once. I think category options needs to be an array of strings. For instance, for my app, I'm going to want to set [.duckOthers, .allowBluetooth, .allowBluetoothA2DP, .allowAirPlay, .defaultToSpeaker].
I'm still new to Swift. There might be a better way to convert an array of strings to an OptionSet, but I'm currently using this PR in my app like so...
  TrackPlayer.setupPlayer({
    iosCategory: 'playAndRecord',
    iosCategoryMode: 'default',
    iosCategoryOptions: [
      'duckOthers',
      'allowBluetooth',
      'allowBluetoothA2DP',
      'allowAirPlay',
      'defaultToSpeaker'
    ]
  })

@dcvz @thessler27 For your eyes

Looks good to me! 👍

Added a separate commit to fix the xcode build, related to @thessler27's PR preceding this one. It seems the model file wasn't yet added to the pbxproj.


makefile is not compatible for cross compilation.

When I tried to compile for yocto framework, it fails due to cross compilation issue.
It throws an error for static library "File format not recognized".

Hello!
not so much info for 100% diagnose.
But try to install GitLFS.
Andrey

Hello,
Sorry my bad.
Let me clear the doubt. I cant use git lfs in Yocto.
Hence I am using tar.gz version of DAAL and I want to use daal component in Yocto framework for IoT edge device.
When I tried to compile, I get following error.
ar: externals/mklfpk/lnx/lib/intel64/libdaal_mkl_sequential.a: File format not recognized
makefile:475: recipe for target '__work_gnu/lnx32e/daal/lib/libdaal_sequential.a' failed
make: *** [__work_gnu/lnx32e/daal/lib/libdaal_sequential.a] Error 1
make: *** Waiting for unfinished jobs....
make: *** wait: No child processes.  Stop.
ERROR: oe_runmake failed

Hello!
Am I understand correctly that you are trying to build daal for different than Intel architecture?
Andrey

Hi @dr-pain
I am building for Intel Architecture only. I am just using Yocto framwork (meta-intel).
http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel
Yocto provides custom linux for embedded system.

Hello!
so, our and your target architectures should be the same.
Looks like the problem in libdaal_sequential.a file. What is the size of it?
GitHUB doesn`t have support of GitLFS too and if you download (not clone) repo as tar.gz you will not receive proper files from GitLFS.
Andrey

GitHUB doesn`t have support of GitLFS too and if you download (not clone) repo as tar.gz you will not receive proper files from GitLFS.

@dr-pain, looks like this is a problem. If user downloads the source code as an archive from the releases tab, they cannot build DAAL since libdaal_mkl_sequential.a is not available. Is there other way (not LFS) to obtain micro mkl libs?

Hello Ruslan!

it isn`t MKL libs only. They contain other fuctionality also.
"libdaal_mkl_sequential.a is not available" it is available, but content is wrong.
"Is there other way (not LFS) to obtain micro mkl libs" it is possible to donwload code from other OS which "support" GitLFS.
3.1 DAAL isn`t published elsewhere that Intel site and github. But we can upload needed DAAL OS parts to asked places. For example, to @apnavik ftp server.
Andrey

@dr-pain
Could you please upload to your ftp server. ?
Let me know if anything required from my side.

@apnavik
is it OK for you if I put DAAL sources to my personal Google Drive?
Andrey

@dr-pain
If it doesn't have any license obligation then it should be fine.
I am just wondering why tar.gz or .zip version doesn't download proper files.
Regards, Ankit

@apnavik
I have uploaded DAAL 2019 update 3 sources to https://drive.google.com/file/d/1NTGqftd37ucfJgDTUc6AwbODuVwiB56T/view?usp=sharing
Note: mac and windows libs were deleted to reduce size. let me know if you need these binaries.
Andrey

I still see, the makefiles are hard coded with g++, ar instead of ${CXX} and ${AR}.
At few place such as ./build/common.mk is trying to invoke host ar
Could you please look into this and use implicit variables as per GNU?

@kiselik @dr-pain  - guess this issue can be closed as corresponding PR have been merged already?

Yes its merged. closing the issue. Thanks


Version on Puppet Forge seems to be missing reboot_time parameter in template

Hello,
The version of this module on puppet forge seems to be missing the reboot_time parameter in the unattended-upgrades.erb template. If i look in the github repo i see this line: Unattended-Upgrade::Automatic-Reboot-Time "<%= @_auto['reboot_time'].to_s %>"; but this is missing in the version i pulled from puppet forge.
I have reinstalled the module to be sure i had the latest and i still faced the same problem, i can work around the problem by manually adding the option but i just wanted to let you guys know about this issue.

Hi,
I'm currently doing a new release in https://github.com/voxpupuli/puppet-unattended_upgrades/pull/60

Fixed in #60


Screen reader not announcing name of edit field announcing only place holder value in Issue Reporter

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

VS Code Version: 1.82.2
OS Version: Windows

Steps to Reproduce:

Open vscode and navigate to Issue Reporter
Start screenreader (NVDA or Narrator)
Navigate through dropdowns and input boxes and see that only values/placeholders are announced, but not the names next to these input fields.

Expected Result:
Screen reader should announce name of combo box and value containing it also.
Speech-input user will not be able to navigate to Steps to Reproduce text field as its name is not as its visual.

original issues created in ADS: https://github.com/microsoft/azuredatastudio/issues/24219, https://github.com/microsoft/azuredatastudio/issues/24218

@TylerLeonhardt , Do you have ETA for this bug fix?

No ETA at this time.


Error codes documentation

Description

Add documentation for Flow error codes
Indicate deprecated error codes as per https://github.com/onflow/flow-go/blob/master/fvm/errors/codes.go
Add missing error codes as per https://github.com/onflow/flow-go/blob/master/fvm/errors/codes.go

For contributor use:

[ ] Targeted PR against master branch
[ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[ ] Code follows the standards mentioned here.
[ ] Updated relevant documentation
[ ] Re-reviewed Files changed in the Github PR explorer
[ ] Added appropriate labels

Let me know your thoughts about the deprecated errors, I think it is worth removing them from [ERROR_CODES.md]. I am currently going through to add missing examples that the Go SDK docs are lacking: https://developers.flow.com/tools/clients/flow-go-sdk/error-codes


Should encodeHeaders be called if decodeHeaders is not called in HTTP Filters?

While working on WebAssembly filters we discovered that it is possible for encodeHeaders to be called on a HTTP filter even if decodeHeadershas never been called.  This occurs if there is an error while parsing the headers or at a higher level resulting in sendLocalReply() being called without decodeHeaders.
Do we want this behavior?  The filter in question has no context for the encodeHeaders call and was not involved in the decision to sendLocalReply().  We could just not call the filter in this case.

Do we want this behavior? The filter in question has no context for the encodeHeaders call and was not involved in the decision to sendLocalReply(). We could just not call the filter in this case.

At least for the C++ filter stack, this is the way "it has always been." I think here is utility in this in some cases like for example the local reply case you outlined. I do think this behavior could be optional but I think it would need to be config driven somehow on a per filter basis. cc @alyssawilk

yeah, there's a TODO in the HCM (ConnectionManagerImpl::ActiveStream::sendLocalReply) to only run the response through filters which saw the request, but at this point I'm not sure that we could just convert on over - I agree it's something we'd need to folks to configure.


[FEATURE] Post image

I'm in GSSoC'23
Description

When the user creats a post and uploads a picture, it doesn't get displayed in the post rather a default image is displayed in the background.
I would like to display the uploaded image in the background of the post.

Screenshots
No response
Additional information
No response

I'm in GSSoC'23
Description

When the user creats a post and uploads a picture, it doesn't get displayed in the post rather a default image is displayed in the background.
I would like to display the uploaded image in the background of the post.

Screenshots
No response
Additional information
No response

I'm in GSSoC'23
Description

When the user creats a post and uploads a picture, it doesn't get displayed in the post rather a default image is displayed in the background.
I would like to display the uploaded image in the background of the post.

Screenshots
No response
Additional information
No response

Hi @anamika7153 , I can't reproduce the error, can you recheck it?

I'm in GSSoC'23
Description

When the user creats a post and uploads a picture, it doesn't get displayed in the post rather a default image is displayed in the background.
I would like to display the uploaded image in the background of the post.

Screenshots
No response
Additional information
No response

I'm in GSSoC'23
Description

When the user creats a post and uploads a picture, it doesn't get displayed in the post rather a default image is displayed in the background.
I would like to display the uploaded image in the background of the post.

Screenshots
No response
Additional information
No response

Hi @anamika7153 , I can't reproduce the error, can you recheck it?

Yeah, it's fixed now.

I'm in GSSoC'23
Description

When the user creats a post and uploads a picture, it doesn't get displayed in the post rather a default image is displayed in the background.
I would like to display the uploaded image in the background of the post.

Screenshots
No response
Additional information
No response

I'm in GSSoC'23
Description

When the user creats a post and uploads a picture, it doesn't get displayed in the post rather a default image is displayed in the background.
I would like to display the uploaded image in the background of the post.

Screenshots
No response
Additional information
No response

Hi @anamika7153 , I can't reproduce the error, can you recheck it?

Yeah, it's fixed now.
that's good news, thanks :) Closing this issue


Advanced - Remote image set as icon not working

Hi @raix ,
https://github.com/raix/push/blob/v3.x/docs/ADVANCED.md
Tested this on Samsung S6 and<EMAIL_ADDRESS>and the icon just comes out normal as how it always has been.
Any thoughts please ?
Thanks

The current live version (3.0.2 - https://github.com/raix/push/commit/d17e1eb26ef03dab233a3f9170c876db952c968f from Oct 22) does not include the image support (introduced in Mar 3 https://github.com/raix/push/commit/fc5787408ac37fc22b8fd8d811b5ae40c6c91cad) unfortunately :disappointed:
The question is when the new version will be released?
I'm willing to do a PR to support extra data for GCM.

can you give 3.0.3-rc.5 a go to see if it's still an issue? (I'll be happy to take pr's - mind the new version deprecates the json config files - hopefully this will allow less friction)


Server returns 404 when using RunOnDemand sshpass to publish with a remote host

Which version are you using?
v0.22.0
Which operating system are you using?

[ ] Linux amd64 standard
[x] Linux amd64 Docker
[ ] Linux arm64 standard
[ ] Linux arm64 Docker
[ ] Linux arm7 standard
[ ] Linux arm7 Docker
[ ] Linux arm6 standard
[ ] Linux arm6 Docker
[ ] Windows amd64 standard
[ ] Windows amd64 Docker (WSL backend)
[ ] macOS amd64 standard
[ ] macOS amd64 Docker
[ ] Other (please describe)

Describe the issue
Description
In previous versions (confirmed this works in v0.19.3 and prior) I was able to use RunOnDemand to initiate a stream through a remote host (reachable to RTSP-S-S via a VPN connection) using an sshpass ffmpeg copy command sent to the remote host to "push" the remote camera stream outside of the VPN to the Simple Server public IP address rather than pulling the stream all way back through the VPN.
This is necessary for my use case because the camera isn't directly accessible via the server, it sits in a LAN behind the remote host. Also stream performance is higher (the remote host is a cellular device) without the VPN overhead.
stdout of the remote device (ffmpeg logs) also used to come back to the Simple Server log using this method (it was great!).
EX:
[simple server] --sshpass--> [remote host] --ffmpeg copy--> [remote camera stream] --public ip--> [simple server]
source: publisher
RunOnDemand: sshpass -p redacted ssh -o StrictHostKeyChecking=no<EMAIL_ADDRESS>'/root/files/restream-1.sh'
This method no longer functions with RunOnDemand, but executing the sshpass command manually from inside the docker with exec does work.
Describe how to replicate the issue

'apk add sshpass' to the docker container during build
Start the server
Attempt to RunOnDemand launch a stream via a remote host's ffmpeg copy shell command. You'll find that the Simple Server ex: https://www.example.com:8888/test (or https://www.example.com:8888/test/index.m3u8 in an external HLS player) immediately returns '404' and the sshpass command is never sent to the remote client.

Did you attach the server logs?

No, there's nothing interesting to find. Just '404'.
Did you attach a network dump?

No, not necessary.

Hello, wrap your command into sh -c:
runOnDemand: sh -c "sshpass -p redacted ssh -o StrictHostKeyChecking=no<EMAIL_ADDRESS>'/root/files/restream-1.sh'"

The reason why it worked in previous versions is that previous versions ran external commands in the shell (sh for Alpine, bash for Ubuntu), while newer versions run external commands directly, which is faster. You can switch back to the old behavior at any time by manually launching the shell (sh -c).


How to assign a certain GPU for softgym?

Hi,
I have a new question here. Softgym seems to automatically use available gpus. How to assign a certain GPU for softgym?
Thank you for any suggestions!

Hi,
I have a new question here. Softgym seems to automatically use available gpus. How to assign a certain GPU for softgym?
Thank you for any suggestions!

You can use
# export CUDA_VISIBLE_DEVICES=X
# export EGL_GPU=X

to choose the GPUs you want to use.

Thanks for reply so quickly!


[BUG]  Outdenting using SHIFT+TAB moves item below when other nonoutdented items exists

Describe the bug
Outdenting using SHIFT+TAB    moves item below when other nonoutdented items exist.
Not sure if bug or a feature.
To Reproduce

Make list

- A
	- B
	- C
- D

Go to Item B
Outdent It using Shift + Tab
Result

- A
	- C
- B
- D

Expected behavior
A clear and concise description of what you expected to happen.
The item B will not be moved below
- A
- B
	- C

- D

Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS] LinuxOS
Obsidian Version: [e.g. 22] 0.11.13
Outline 1.1.1

Additional context
Add any other context about the problem here.

@danieltomasz Thank you for your contribution!
This is not a bug, but a feature. And it's important one.
Outliner tries not to break the structure of the list.
For example, in your case, C implicitly changed the parent from A to B after unfolding B.
Closing for now. Feel free to open a discussion.

Thanks for the comment!  It makes sense. Dynalist and other outlines have this behaviour but this is not a default behaviour in vanilla Obsidian.


Support instantly taking screenshot before choosing portion with slurp

I often want to take a screenshot from a popup window, whether it be in the browser or elsewhere. Unfortunately these popups close when focus is lost. MacOS takes a screenshot when the screenshot button is pressed and the selection tool then allows you to select a portion of the screen thus allowing you to take screenshot of popups.
Having this functionality in Wayshot would not be trivial as it would require creating an overlay on which slurp can then be used. Currently slurp is also run before Wayshot so we cannot take a screenshot and show it as a moment capture before running slurp so that needs to be changed as well. We could make --slurp accept any command and run it from inside of the CLI so we can take a screenshot first and show it to the user after which we can run slurp to select what thay want and then we'd only need to do a crop. What do you think?

Currently slurp is also run before Wayshot so we cannot take a screenshot and show it as a moment capture before running slurp so that needs to be changed as well.

I don't quite understand what this sentence means.

We could make --slurp accept any command and run it from inside of the CLI so we can take a screenshot first and show it to the user after which we can run slurp to select what thay want and then we'd only need to do a crop. What do you think?

Please correct me if I understood you incorrectly:

In this approach we would have to take the screenshot of all monitors, composite them into one, encode them and then clip/crop it again? Feels inefficient and might lead to loss of detail if I'm not mistaken.

Leaving the above point aside, what if we only want to select a portion of one monitor? Well now we are still capturing all outputs because we can expect any form of slurp transforms with any number of available monitors being panned across.

There's also the elephant in the room that I haven't addressed. This would require a major rewrite including zwlr_layer_shell and other generic wayland boilerplate that feels out of scope for the project.

Proposed solution:
Here's a solution that I had thought of since day 1 of writing wayshot which might be more feasible. We take a full-monitor screenshot of the active monitor and then just pipe the contents into a second program ( I had thought of writing a snappy clone which is better..), here we can do: cropping/blurring/coloring etc etc)
I never got the time to execute this idea but if someone wants to pick up on it, let me know.

I don't quite understand what this sentence means.

When we pass --slurp, it uses the output from slurp that has already been executed. Though ideally when you select the region you want to save, you want to see exactly what is about to be saved. In this case that means we want to immediately see the screenshot of when we call wayshot. Because slurp runs before this, there is no way we can do that.
So currently it's "slurp -> region screenshot". We would need "screenshot everything -> slurp -> crop".

In this approach we would have to take the screenshot of all monitors, composite them into one, encode them and then clip/crop it again? Feels inefficient and might lead to loss of detail if I'm not mistaken.

We don't necessarily need to encode them in the middle. We can keep the buffer in memory and drop/destroy it when we no longer need it. This also will not lead to any loss in quality, we are however holding onto more memory and for slightly longer. Though I don't think this is an issue.

Leaving the above point aside, what if we only want to select a portion of one monitor? Well now we are still capturing all outputs because we can expect any form of slurp transforms with any number of available monitors being panned across.

I'm not sure if you're asking me anything here. Though we will indeed take an entire screenshot each time.

There's also the elephant in the room that I haven't addressed. This would require a major rewrite including zwlr_layer_shell and other generic wayland boilerplate that feels out of scope for the project.

Yes, zwlr_layer_shell will be required. I currently have an implementation that is leveraging zwlr_layer_shell to take a screenshot and reuse the same buffer the screenshot was taken to as a top layer and then slurp is called to select a region. There are no unneeded copies of data. I have to work a bit with the coordinates and use imageops::crop to crop the final image, though so far it seems very possible.
Would you be down to chat on Discord and we can possibly talk further there? I'll post something.

Future reference: we discussed further via Discord. Will share a PoC when ready.


bug: notification red dot went to corner of the screen

probably has to do with some relative/absolute twind config

I recently made some front-end changes that would've caused this. My bad.

Completed in #337.


azure devops demo generator failed to navigate to project

I got this error after creating then navigating to project:
404 - Page not found
Looks like this page doesn’t exist or can’t be found. Make sure the project name and URL are correct.
27/6/2024 8:20:37 AM (UTC)
63725626-dd41-4372-8fae-dfaa6b4704a6

Please enable the third party authentication vai oAuth option in your organization settings and try to provision the project,
Refer to #1040