text:
Rancher picks a random port once instead of per-container when creating a new service without a fixed port mapping

Rancher Version: v0.63.1
Docker Version: 1.10.3
OS: Ubuntu
When provisioning a stack from rancher-compose, Rancher appears to pick one port for a port mapping that isn't fixed (i.e. docker dynamically assigns it) for all containers, which poses a problem when you have more containers of that type than host.
For example, if I provision the service web and specify 80 under ports in docker-compose.yml, Rancher picks a random port like 53563 and then tries to use it for all containers. If I have three hosts and request eight web containers, it becomes stuck. The Rancher UI shows it's only trying to use the port it randomly picked as well.

@deniseschannon  @iangcarroll this is by design. Port defined on the service, should be the same for all containers of the service; whether it's assigned, or picked randomly. As for the case with statically assigned public port, you would need to make sure you have enough hosts in the system to place all service's containers w/o running into port constraints violations

I think I poorly worded this issue. You can't fix the issue where a container requests 80:80 and there aren't enough hosts, but when there are more containers than hosts for a service requesting any port mapped to 80 on the container, Rancher shouldn't be running into issues. It already does this when you scale a service up after creating it, so it would probably make sense to do it here too.

You can't fix the issue where a container requests 80:80 and there aren't enough hosts, but when there are more containers than hosts for a service requesting any port mapped to 80 on the container, Rancher shouldn't be running into issues. It already does this when you scale a service up after creating it, so it would probably make sense to do it here too.

scaling up service when there are not enough hosts to satisfy port requirement, shouldn't be treated any different from creating a service when there are not enough hosts for deployment. In both cases service should be left in intermediate state, and reason for the deployment failure is presented for the user in the UI, so the user can fix it either by a) adding more hosts, or b) scale down the service so scale = number of eligible hosts.
Today b) - updating the service - is available only for the services that are being scaled up, but not for the services that are being created (activated). @sangeethah @deniseschannon I believe we have a ticket asking to add a support for it, could you link it here?

@alena1108 C) pick another random port available on all hosts and use that one until there are no hosts with that available with that port & repeat.  Trying to be friendly to DNS and use the same port shouldn't prevent you from having scale > hosts with a random port.

@vincent99 that might work only for initial service creation as we can't assign more than one public port to the service's private port, random or not random. So in order to reapply newly picked port to all the instances, we would have to recreate existing ones

Sounds like we need to fix that then :smile:  Need to be able to have random ports with #containers > #hosts, and be able to scale it up & down.  So it will need to use more than 1, and should group them into approximately the minimum number of distinct host ports needed.

So in order to reapply newly picked port to all the instances, we would have to recreate existing ones

This doesn't sound like what (I think) vincent99 is asking for. I think what he's looking for (and definitely what i'm looking for) is something like this:

define service with random port mapping
rancher picks some random, available port (say 56789)
scale service to # containers == # hosts
scale service to have one more host
Rancher picks a second, different port (sat 56790). Existing containers have no change, new containers get port 56790.

@bengerman13 I understand that. But with the current design, the random port that we chose for a specific private port of the service, is shared by all the containers of the service (=by all the hosts).
@vincent99 @ibuildthecloud I don't recall the exact reasons/requirements for this particular way of implementation over doing it on per individual container basis, but I do remember that was the initial requirement - random port being consistent cross service's container. If you feel that this way is not quite correct, we can change it.

It was just a lot simpler this way.  To do multiple ports will need basically a port scheduler and somehow balancing container scheduling desires vs port availability.  We'll talk offline :smile:

@vincent99 ok

@alena1108  Why rancher expose the port for developer? I think if  they need it ,they can define it in docker-compose file or use load balancer to expose the same port in multi hosts
With this design, how can I run multi container(same image) in a host ?

Rancher will handle expose correctly, just not ports. In most cases this is fine because you can put them behind a load balancer.

This issue been bugging me for a long time, but after spending a bit more time thinking and playing around with rancher and different types of services, I came up with conclusion that current design makes the most sense:

if as part of docker-compose file you've specified that your service is available on port XX, you want to have consistent "entry points" for that service across all machines
if your dockerized app doesn't really care at which public port it runs and only concerned about internal private port (in docker container), then just use EXPOSE instruction in your Dockerfile and it will work beautifully allowing you to scale app to multiple instances even on a single machine

What would be really cool, is to put these guidelines / recommendations somewhere in the docs. Because in case of providing only private port in docker-compose, docs don't say anywhere that port will be randomly chosen only once (not for every container). And, you know, you have an expectation that it will be chosen randomly for every container (if you replicate same scenario via vanilla docker-compose features).

@akurkin are you saying that rancher currently works with expose? I can't get the expose directive in docker compose to be respected and we don't have a ui button for it.

@remkade I mentioned EXPOSE instruction in Dockerfile. I haven't used expose in docker-compose.yml. So basically Dockerfile keeps the knowledge about private ports vs docker-compose

@akurkin I'm not sure how to use that in Rancher. Does rancher support some way of doing the docker --publish-all?

@remkade sorry I have no idea. I'm using it like this:
Assume I have service api, then:

set EXPOSE 3000 in Dockerfile (for conventions I used port 3000 for every service)
do not set any port mappings in docker-compose.yml

From load balancer, or any other service, I can do curl http://api:3000/ -- notice I didn't publish any ports via docker-compose, yet it's still available when querying directly my private port (thanks to rancher networking)

@vincent99 @alena1108 any update on this? (Picking a new random port, rather than a random port when service is created)
This would be extremely nice :)

This also makes sense when using Consul Registrator, since you are then fine w/having dynamic port numbers.

^exactly.
There are a couple extra points I'd like to make regarding port usability scenarios that might be worth offering at some point in the future:

Since a multitude of people already use Service Discovery methods, in addition to utilizing rancher-metadata for whatever service catalog people might need, some users may want the option to enable random port assignments for every deployment of the container. One reason for this would be to cease from exhausting a specific port on the cluster (applicable to SaaS use-cases). With that, since that port isn't actually reserved on hosts which don't yet have the service running, when trying to expand scale in the cluster, that same port may not be obtainable (another service may be using it).

Presently, this functionality only seems to work for Service deployed containers, not for just flat containers which are launched (and have the same port mapping configuration available). To me, it seems pretty trivial to provide this for launched one-off containers, whereas that individual container gets a random port assigned to it which isn't reserved (as it isn't a service). There was some talk about this in irc.

+1 to this feature request. Similar to what @jhmartin said, I'm using Registrator with Consul and Consul-Template to add services to automatically created load balancers that live on their own network (not containers).
Ideally I'd be able to have a random host port mapping to, say, port 3000 in my container and scale up > the number of hosts, with a random port being assigned to each scaled container. Registrator + Consul handles this fine and updates my external load balancer accordingly.
The workaround being used now is to EXPOSE the container port but create no hosts ports, then create a load balancer service within Rancher that has an appropriate SERVICE_NAME label defined. The downfall to this is that the traffic is hopping from my external load balancer -> Rancher load balancer -> container vs external load balancer -> container.

+1
I am looking into rancher now only because i thought it would be able to do that out of the box. AWS ECS is able to do that for http+https and i need regular TCP.
There is a huge difference between running out of ports in the cluster to other resources since usually we are talking about a different order of magnitude.

I am actually running multiple services on ONE server and need the Docker built in port forwarding to handle the port assigning. Otherwise, when I try to scale my services they all collide with the first. At least make it possible to support NOT assigning the same ports for ALL the service containers.
If I run them from the command line individually, everything works perfectly. But, when I try to use the rancher/cattle environment, all of the service containers collide with the first one because the dynamic port assignment, which docker performs, is not being carrier out since all the new containers use the first container's port assignment.
#7400

I've noticed this on 1.4.1.

Create a service with portmap: public port empty and private container port set.
Create Service

-It populates the pub port once instead of randomly at runtime.

However, if I create the container first with NO port mappings. Run it, Upgrade it by adding a port mapping, then it leaves the pub port blank and works as intented of randomly picking a port per container.

After reading the comments above - this is bad design by Rancher.

If you define EXPOSE on a docker file the host should choose a random public port for that container.
Rancher will statically assign a public port for that container. That is inconsistant with docker thus this entire chain.

I would either:

Change the wording to make it clearer that this is public port is assigned across all the services.

Change the functionality (docker/aws/kubernetes etc) blank = random port.

would actually match the docker compose spec and reduce this confusion.

The current behavior does not match the behavior of docker or docker-compose, and creates another pain point for people migrating from a non-rancher orchestration style.  @vincent99 @alena1108 the last update from Rancher on this issue is from over a year ago, has there been any work on this, or are there any updates you can provide?
On a more technical note: Is there any reason this behavior is considered better than how docker-compose would handle port assignment?  At the very least, can we get an option to retain the same behavior as docker/docker-compose?  Adding an entire port scheduling system in Rancher seems overkill, when docker is already able to schedule the port on a per-host basis.  Couldn't you just allow docker to schedule the port, and have Rancher read the port that docker scheduled?  At that point, showing the scheduled port correctly in the Rancher API and rancher-metadata would be enough to unblock us.

I have nothing new to add really, and clearly there hasn't been work on it.

EXPOSE does not publish ports to the host (in Rancher, regular docker, or anywhere else).  It just declares that the container listens on those ports.

The behavior of docker and docker-compose is irrelevant because it only deals with one container/host.  Things like external-dns are useless if the port being exposed varies with every host IP.  So you then need some other non-standard mechanism to discover all the ip+port combinations that are published and, clients that support that mechanism.

The docker daemon is not involved in picking port numbers, and in fact doesn't even know ports are published at all in modern Rancher versions, because networking and port mapping are handled by CNI as iptables rules and the actual container is --net=none.

Swarmkit services implements a similar behavior, except that it reserves the port on every host, whether it has containers running for that service or not.

that makes it sound like exposing a port with ports: 80 in a docker compose file of a stack should allow it to scale where scale > hosts ? That's not the behavior i'm seeing. What i'm seeing is the stack getting converted to be ports: 12345:80 (say) and then additional copies of the service clashing on port usage.
the problem i have is that i have scale > hosts, but the scaled nodes are not identical. I'm running behat testing against many workers and while each worker node is the same docker image, the files on disk differ after boot time, hence while i can (and do) load balance incoming requests via an haproxy container to give a shared endpoint for testing against and then use a service selector to find the worker node to send the request to, the current rancher inability for scale > hosts on the worker nodes kills my use case, as far as i can tell.
I need to be able to have more than 1 copy of a service on hosts, while exposing a port (any port, i don't care which) for a load balancer service that lives on anouther host to access. It sounds like this bug is a blocker for my use case currently as rancher seems to be assigning a local port for that service, and then choking when i go to scale it up.

Referring to @vincent99 's message further above:

Things like external-dns are useless if the port being exposed varies with every host IP.

If you assume all applications only ever use a single fixed port, and never use any service discovery, then yes you might run into problems using external dns.  Anything that uses consul or zookeeper or another service discovery mechanism can also register their port.  I feel like service discovery is a common practice in the docker world, and a blind spot for Rancher when it comes to issues like this.  Assuming a service will only ever use a single fixed port is applicable in the pre-docker world, where you probably only ever run one copy of the service per-host.  In a dockerized world, does it really make sense to keep following that assumption?

So you then need some other non-standard mechanism to discover all the ip+port combinations that are published, and clients that support that mechanism.

I wouldn't call consul and zookeeper non-standard.  And having clients that support them is pretty common.

The behavior of docker and docker-compose is irrelevant because it only deals with one container/host.

I get what you're saying here, but you could use that argument for almost anything native-docker vs rancher.  Just because docker was originally designed with individual hosts in mind, doesn't mean they made bad decisions for multi-host environments, remember that they've been working on docker-swarm for a while.  The point is that the direction docker went with (randomized external ports if one isn't specified) would fix the scale > num_hosts problem, and forcing every service to have a single port will always re-introduce the scaling problem.  Some of us picked rancher because we don't want to treat our hosts like pets.  If I can only run one copy of a container on a host, even though the host is totally underutilized otherwise, then I have to manually balance something else onto it to make full use of those resources, and that's getting further away from treating our hosts like cattle.
Come on guys, less pets, more cattle.

Again, we're aware of the issue and have nothing to add today.  And there is a perfectly serviceable workaround for most people; don't publish a port, run as many as you want, and make them available to the internet using a limited set of n < hosts load balancer containers.

don't publish a port, run as many as you want, and make them available to the internet using a limited set of n < hosts load balancer containers.

That workaround only works if your service is capable of running behind rancher's load balancer.  Unfortunately not all services fit into that mold.  The situation gets a lot more problematic with UDP based services, kerberos or mutually auth'd services, and services which need to accurately advertise their address (and probably several other cases that we haven't even run into yet).
The reason this issue is important is not because of the 90% of services that work fine behind a load balancer, it's important because of the rest which do not.  We'd do things the way you're suggesting if that was an option, but in a lot of cases it's not.  If the load balancer worked for all applications, this wouldn't even be an issue.
There's a tendency to view any non-http based service as if we're trying to do some wacky off-the-wall thing in some unsupported way.  I don't feel like it's the fault of the users that they're running an application which doesn't work behind the rancher LB and need it to scale.

I am running a selenium grid on docker. All the nodes have the same internal port, thats why I need Rancher to expose them on different external ports. They will then tell the hub to use this externel port to communicate. Currently I can only run such a service with scale one.

@McSnowflake
I'm using this schema in Rancher and had no problem.
version: '2'
services:
  node-chrome:
    image: selenium/node-chrome:3.0.1-carbon
    environment:
      HUB_PORT_4444_TCP_ADDR: selenium-hub
      HUB_PORT_4444_TCP_PORT: '4444'
    links:
      - selenium-hub:hub
  node-firefox:
    image: selenium/node-firefox:3.0.1-carbon
    environment:
      HUB_PORT_4444_TCP_ADDR: selenium-hub
      HUB_PORT_4444_TCP_PORT: '4444'
    links:
      - selenium-hub:hub
  selenium-hub:
    image: selenium/hub:3.0.1-carbon
    ports:
      - 4444:4444/tcp
      - 57086:80/tcp

I think to have random external ports, for each service an own, would be really good for my current use case:
I have an application that connects to a server and tells the server how it can connect back to the application.
In my container I made scripts to get the external port and external IP from rancher-metadata in order to add it to the application configuration. Just after I made this up, I recognized that I just can scale to the number of allowed hosts, which in my case is 2 :(
Does anyone has an idea how else I could solve that? Only thing I see now is to make the docker-compose fix on every service I want to have and not use dynamic scaling :(
Btw when I tell the application a port, it will also start on that port which is the external port and not the internal one. My workaround for that to do redirection in that container via ncat. So portwise it goes like this:
56431 -> 9099 -> 56431

With the release of Rancher 2.0, development on v1.6 is only limited to critical bug fixes and security patches.

authors: InAnimaTe McSnowflake Moeser akurkin alena1108 bengerman13 chrisjenx demohi deniseschannon dishcandanty dvmedvedev iangcarroll jhmartin n0rig peshay remkade robertpearce ronpanto uberamd vincent99


text:
[RFE] Allow provisioning Vsphere RKE2 DS clusters with duplicate networks names [UI & Backend coordination]

Internal reference: SURE-6853
Request description:
A user uses VMWare as infrastructure to provision rke2 downstream clusters. The Vsphere Distributed Switches, VDS, get networks from NSX-T. There is only one Transport zone so all VDS get the same networks, therefore network names are duplicated.
Actual behavior:
The Rancher UI stalls when provisioning at networks tab and the provisioning process fails.
Expected behavior:
Provisioning a new rke2 cluster when the network names are duplicated
Workaround:
Provisioning the cluster with cluster templates. The networks can be specified
https://github.com/rancher/cluster-template-examples/blob/main/charts/values-vsphere.yaml
  # vSphere network where the virtual machine will be attached
  # network: ""

A different workaround is using terraform.
UI has tried looking into this in https://github.com/rancher/dashboard/issues/9817 but per @snasovich comment, there's coordination required between teams to do this:

the implementation of proposed fix will require changes on both backend and UI side: "Therefore, an alternate strategy to this would be the UI referencing the MOID value rather than the port group name. I would still list the port groups in the UI by name, but once selected, the ID can be used instead"

That is because I'm pretty sure UI is currently using meta/vsphere/networks endpoint in Rancher to get networks and it returns plain list of strings - see https://github.com/rancher/rancher/blob/f0b3227927ae99dbc8c944b3aca908708bbf23ea/pkg/api/norman/customization/vsphere/listers.go#L307

So, this will not be a simple fix and will require a redesign of backend/UI data contract and behavior and will likely need to be considered pretty much a feature request.

Potential workaround: create a cluster using TF or cluster templates.

@jiaqiluo to work on the design for this feature. Not moving to "Actively Developing" state until we actually are.

@snasovich how's this looking for 2.9.0? UI is waiting on this and this looks at risk.

@gaktive , there are some internal discussions going on regarding this issue. Stay tuned...

Now that the backend PR has been merged, it should no longer pose a blocker for the UI.

Moving it to Ready for testing as the associated Dashboard issue is ready for testing now

Ticket #46837 - Test Results - ✅

Scenario
Test Case
Result

1.
Provision vSphere cluster
PASS

2.
Upgrade vSphere rancher cluster
PASS

Verified with (HA Helm or Docker) on Rancher v2.10-head:
Permutations: RKE2/K3s
Scenario 1: Provision vSphere cluster

Provision a 3 node all role cluster
Verify that the network name utilizes MOID
Verify that the cluster comes up and all pods in a stable state.

Results: the network name utilizes MOID and the cluster came up in a stable state

NOTE: When upgrading rancher the MOID is not displayed in the current network name, however if you click the dropdown it is visible (will file an issue for this bug)
Scenario 2: Upgrade vSphere rancher cluster

Provision a 3 node all role cluster
Verify that the cluster comes up and all pods in a stable state.
Upgrade rancher to 2.10-head
Verify that everything remains in a stable state

Results: Everything remains in a stable state

source: gharchive/issue

authors: gaktive jiaqiluo snasovich susesgartner

repo: rancher/rancher

license_type: permissive

license_source: github-api


text:
[BUG] Remove the clusteruserattribute in the controller's handler when the corresponding userattribute no longer exists.

Ref: SURE-6923

Validation Template
What was fixed, or what change has occurred
Orphaned ClusterUserAttributes are now cleaned up by the corresponding controller.
Areas or cases that should be tested

Create a downstream cluster with ACE enabled
Create two users and assign them to the downstream cluster
Log in by both users and download the kubeconfigs
On the local cluster change the second user's token to point to the first one
Delete the second user
Observe that the ClusterUserAttribute for the second user was left on the downstream cluster
Restart Rancher or trigger clusteruserattribute controller in other way
Observe that the ClusterUserAttribute for the second user was removed from the downstream cluster

What areas could experience regressions

Additional strain on ClusterUserAttribute controller as we now always make a read to check if the corresponding UserAttribute object exists whereas previously we did that only when the refresh was needed.

Are the repro steps accurate/minimal?
N/A.

I am pastin the workaround here... Although a fix for this issue has been developed, it has been targeted to 2.9.next. In the meantime, users encountering this problem can apply the below workaround to resolve it...
What's causing the issue is the orphaned ClusterUserAttribute's on downstream cluster(s)
Customer need to delete those (obviously only the orphaned ones, that the controller is complaining about in the logs).

Checking for offending ClusterUserAttribute's:

KUBECONFIG=<path/to/downstream/kubeconfig> kubectl -n cattle-system get clusteruserattribute <orphaned-clusteruserattribute-name>

thank you @pmatseykanets

Validated on v2.9-head id 3c48a19. All scenarios in test plan have been executed and passed.

authors: joesims22 pmatseykanets samjustus skanakal


text:
rancher catalog panics and UI wont login when catalogs are inaccessible

Rancher versions:
rancher/server:1.6.4
In a setup that is air-gapped, and doesnt leverage a git mirror, the user is effectively locked out of the UI. Go panics ensue.

Auth returns success, but user is not able to login since UI gets an error for the API call /v1-catalog/catalogs and does not let the login proceed. Can we make this API call after the user is allowed to go to the landing page?

go panic in logs:
goroutine 38 [running]: panic(0xa336c0, 0xc42001a060) 	/usr/local/go/src/runtime/panic.go:500 +0x1a1 github.com/rancher/catalog-service/git.RemoteShaChanged(0xc4202114d0, 0x2c, 0xc420229098, 0x6, 0xc420211500, 0x28, 0xc4202b42a0, 0x24, 0x9bc0c0) 	/go/src/github.com/rancher/catalog-service/git/git.go:76 +0x2aa github.com/rancher/catalog-service/manager.(*Manager).prepareGitRepoPath(0xc420206280, 0xc420229092, 0x6, 0xc4202290c0, 0x9, 0xc4202114d0, 0x2c, 0xc420229098, 0x6, 0xc420211500, ...) 	/go/src/github.com/rancher/catalog-service/manager/local.go:86 +0x339 github.com/rancher/catalog-service/manager.(*Manager).prepareRepoPath(0xc420206280, 0xc420229092, 0x6, 0xc4202290c0, 0x9, 0xc4202114d0, 0x2c, 0xc420229098, 0x6, 0xc420211500, ...) 	/go/src/github.com/rancher/catalog-service/manager/local.go:32 +0x99 github.com/rancher/catalog-service/manager.(*Manager).refreshCatalog(0xc420206280, 0xc420229092, 0x6, 0xc4202290c0, 0x9, 0xc4202114d0, 0x2c, 0xc420229098, 0x6, 0xc420211500, ...) 	/go/src/github.com/rancher/catalog-service/manager/manager.go:102 +0x82 github.com/rancher/catalog-service/manager.(*Manager).refreshConfigCatalogs(0xc420206280, 0x1, 0x0, 0x0) 	/go/src/github.com/rancher/catalog-service/manager/manager.go:73 +0x2ae github.com/rancher/catalog-service/manager.(*Manager).RefreshAll(0xc420206280, 0x1, 0x0, 0x0) 	/go/src/github.com/rancher/catalog-service/manager/manager.go:39 +0x38 github.com/rancher/catalog-service/cmd.refresh(0xc420206280, 0x1) 	/go/src/github.com/rancher/catalog-service/cmd/root.go:177 +0x38 github.com/rancher/catalog-service/cmd.autoRefresh(0xc420206280, 0x12c) 	/go/src/github.com/rancher/catalog-service/cmd/root.go:186 +0x4f created by github.com/rancher/catalog-service/cmd.run 	/go/src/github.com/rancher/catalog-service/cmd/root.go:145 +0x50e time="2017-07-18T19:29:50Z" level=info msg="Starting Catalog Service (port 8088, refresh interval 300 seconds)"  panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x10 pc=0x6c23fa]

To replicate issue:
Turn off internet connection
Refresh catalogs

In the situation for an air-gapped network, this is the workaround fix for v1.6.3 and v1.6.4:
Change the catalog.url setting via http://<your-ip>/v2-beta/settings/catalog.url to
{"catalogs":{"community":{"url":"<your-ip>","branch":"master"},"library":{"url":"<your-ip>","branch":"${RELEASE}"}}}

Delete the catalog entries in the catalog table:
docker ps
docker exec -it <your-container-id> mysql cattle
SELECT * FROM catalog;
DELETE FROM catalog WHERE id = <id of library> OR id = <id of community>;

Another relevant issue is: https://github.com/rancher/rancher/issues/9401 in which a kubernetes install behind a proxy does not show the default environment templates.

Tested and validated using v1.6.5-rc1 by @LLParse and @chrisurwin with airgapped setup and proxys.

authors: aemneina amy deniseschannon prachidamle


text:
hauler-docs configuration overhaul

Cleaned up, updated, and fixed hauler-docs repository
Updated the docusaurus configuration and settings
Added the initial layout and of hauler docs

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

LGTM!

source: gharchive/pull-request

repo: rancherfederal/hauler-docs


text:
Slow builds.

Waiting for a build to run and fail after 30 minutes just to fix a flake8 Error after is annoying.

Moving all open issues into rancherio/rancher.
https://github.com/rancherio/rancher/issues/334

repo: rancherio/python-agent

license_source: bigquery


text:
[UI] Logs do not continue scrolling

After the log stretches to fill the screen it stops scrolling. The expected behavior is that it would continue following along with new lines added.

v0.16.0
Verified Fixed

authors: deniseschannon tfiduccia

repo: rancherio/rancher


text:
When LB service is scaled more than the host available , editing the scale should fail and user should be presented with an error message.

Server version - V0.20.0
Create LB service with scale 2 and link it to another service in the same environment.
Set up has 3 hosts.
Edit Lb service and set scale to 4.
This results in another LB agent being created on the 3rd host , as expected.
The service is stuck in "updating-active" state forever , since there is no host available for scaling to 4.
Expected Behavior:
Editing the scale of the service should report failure and user should be presented with an appropriate error message.

Sangeetha, as per our discussion, its related to the fact that we don't change the status of the service to failed when the service fails to bring up instances. The reason of the failure doesn't matter. So marking as a duplicate to https://github.com/rancherio/rancher/issues/557. Lets just keep all the discussions there.

I am reopening this issue , w.ro.to the discussions in  https://github.com/rancherio/rancher/issues/820

:+1: Same comments as #727. Need to think of multiple users.

Pre-duplicate of https://github.com/rancher/rancher/issues/820
Essentially, we need better error message when service will fail to scale due to lack of open ports or invalid container info.

authors: alena1108 deniseschannon sangeethah


text:
My new feature

Bower files were deleted
CSS was removed from .html to .css
made-with-love.html was moved up one level and its level dependancies
were updated.
index.html & demo.html were added for standard Polymer support
made-with-love.html markup was updated to work with index.html
some minor changes.

@AlbertSanIza I don't understand what you want removing bower files for ../ directory.
I understand that bower_components folder should be in .gitignore file. Here on my machine was all messy in directory above :(
The files index.html and demo.html should be in gh-pages branch for work with  http://randsonjs.github.io/made-with-love url.
And finally, if you can update README file I will be greatful :)
You can change these changes and squash your commits?
Glad you see this repo and send me a pull request.

@randsonjs  Hello there thanks for checking my pull request.
(sorry for bad english)
The reason I did that is because most of the new components has that directory, they are not being saved in the src folder.
Instead we have:
bower_components/made-with-love/made-with-love.html
bower_components/other-element/other-element.html
For the case of this component if I wanted to add it to a project I had this:
bower_components/made-with-love/bower_components/etc.
(wich is redundant)
and made-with-love.html was not at the same level as all the other components.. it was under src.
index.html and demo.html are ok in this branch to, because when working offline (if that is the case) or when you just don't want to search online... you can use them as docs... also if someone forks your project, they don't need to worry about generating everything for gh-pages its "already done".
readme must be updated to match this changes, but if there is no pull request, there is no need to change them.
Hope this was helpful.
let me know your comments :D

Thanks @AlbertSanIza, if exist any errors I'll fix later :)

authors: AlbertSanIza randsonjs

repo: randsonjs/made-with-love

license: mit


text:
No drop?

Placed pipes when broken dont drop. Video here

Awkward! That's what I get for only testing in creative I guess...

Thanks for reporting, fixed.

No problem, I'll let u know if I find anymore bugs

repo: raoulvdberge/refinedpipes

license: MIT


text:
Replace local copyright check with pre-commit-hooks verify-copyright

Description
The local copyright.py script is bug-prone. Replace it with a more robust centralized script from pre-commit-hooks.
Issue: https://github.com/rapidsai/build-planning/issues/30
Checklist

[ ] I am familiar with the Contributing Guidelines.
[ ] New or existing tests cover these changes.
[ ] The documentation is up to date with these changes.
[ ] The cmake-format.json is up to date with these changes.
[ ] I have added new files under rapids-cmake/

[ ] I have added include guards (include_guard(GLOBAL))
[ ] I have added the associated docs/ rst file and update the api.rst

/merge

repo: rapidsai/rapids-cmake


text:
🛑 BFSU Mirror(mirrors.bfsu.edu.cn) is down

In df988f2, BFSU Mirror(mirrors.bfsu.edu.cn) (https://mirrors.bfsu.edu.cn) was down:

HTTP code: 0
Response time: 0 ms

Resolved: BFSU Mirror(mirrors.bfsu.edu.cn) is back up in c607854.

repo: raspbian-addons/status


text:
socketo.me DNS address not found

Error is:
socketo.me’s server DNS address could not be found.
ERR_NAME_NOT_RESOLVED

Just tried it and works without issues for me. Maybe there was a glitch, could you try again?

Also tested and was able to access the site. Can you confirm if you're still not able to reach it?

It's now accessible. Not sure what happened.
I'll close this now.

authors: WyriHaximus cboden chrisf121

repo: ratchetphp/Ratchet


text:
How i put filters above or below column's names ?

Hello,
I use vuetable-2 that I find very well, and i start with vuejs 2, i would like add my filters above or below column's names with html tag thread tr td. (like this grid example : http://grids-demo.herokuapp.com/demo/example4)
I have this  http://imgur.com/a/I9laA and it's work.
Does somebody have an idea ?
Thank you in advance for your help.

@germ1f Have you check out this tutorial lesson?

Yes, i see your tutorial and it's work but i would like add my filter under colum's name in vuetable but i don't know if it's possible.

Sorry, it's not possible. The only way right now is to fork it and try to implement that.

ok, thanks ! I try this !

@ratiw Would you be open to a pull request for the column search fields?  I can go ahead and add them and show them by using  a prop.

@SimplyCorey You are very welcome and a very nice of you to share it.
However, please don't feel bad if it doesn't get merged. But I'll make it will be linked to when someone asks about this.

I made an extended version of @germ1f  with simultaneously multiple column filter. Also added 3 types of filter a simple input, a datepicker or a dropdown menu which accepts dynamic data. Until you release your next major version I believe is a solution. @ratiw thank you for your implementation.
Multiple column filters

authors: SimplyCorey antoarva germ1f ratiw


text:
Ionic 2

I am looking to use this app in my Ionic 2 projects. It seems there is an issue importing the plugins directly with TypeScript so I used this method:
(<any>window).plugins.AdMob.createBannerView();
I saw you had updated the plugin to have Classes banner:Banner. I tried to use it but I couldn't get it to work.
The problem I have with this is that Ionic 2 comes with a native "AdMob" plugin from https://github.com/floatinghotpot/cordova-admob-pro that uses the same name"AdMob"
Since I am not importing the native plugin in my TypeScript file I feel as if it shouldn't be accessing that plugin API. How can I be sure I am using this plugin and not the native one?

I removed this plugin and it didn't work. Added it back and it worked again. Seems I am accessing this plugin. I still would like some info on how to not use the deprecated functions in Ionic 2 if possible. Thank you.

(window).plugins.AdMob.banner.config( {})
(window).plugins.AdMob.banner.prepare();
(window).plugins.AdMob.banner.show();
I don't know why I didn't think this would work. Closing but if anyone else runs into this issue I hope this helps them spend less time than me figuring it out.

@bflopez I'm also using the Ionic 2 for my projects, and I've even wrote a simple injectable provider to make things easier (to for example switch between different plugins without touching the pages/components). I'm still adding there new stuff, as I find anything is needed in one of my projects.
import { Injectable } from "@angular/core";

@Injectable()
export class AdService {
  constructor() {}

  initialize(banner: string, interstitial: string, reward: string) {
    let engine = this.getEngine();
    if (engine) {
      engine.banner.config({
        id: banner,
        isTesting: false,
        autoShow: true,
        overlap: false
      });

      engine.interstitial.config({
        id: interstitial,
        isTesting: false,
        autoShow: false
      });

      engine.rewardvideo.config({
        id: reward,
        isTesting: false,
        autoShow: false
      });
    }
  }

  getEngine() {
    let engine = window["admob"];
    return engine;
  }

  showBanner() {
    let engine = this.getEngine();
    if (!engine) {
      return;
    }

    engine.banner.prepare();
  }

  removeBanner() {
    let engine = this.getEngine();
    if (!engine) {
      return;
    }

    engine.banner.remove();
  }

  prepareFullScreen() {
    let engine = this.getEngine();
    if (!engine) {
      return;
    }

    engine.interstitial.prepare();
  }

  showFullScreen() {
    let engine = this.getEngine();
    if (!engine) {
      return;
    }

    engine.interstitial.show();
  }

  isFullscreenReady() {
    return new Promise(resolve => {
      let engine = this.getEngine();
      if (!engine) {
        resolve(false);
      } else {
        engine.interstitial.isReady().then(isReady => {
          resolve(isReady);
        });
      }
    });
  }

  prepareRewardVideo() {
    let engine = this.getEngine();
    if (!engine) {
      return;
    }

    engine.rewardvideo.prepare();
  }

  showRewardVideo() {
    let engine = this.getEngine();
    if (!engine) {
      return;
    }

    engine.rewardvideo.show();
  }

  isRewardVideoReady() {
    return new Promise(resolve => {
      let engine = this.getEngine();
      if (!engine) {
        resolve(false);
      } else {
        engine.rewardvideo.isReady().then(isReady => {
          resolve(isReady);
        });
      }
    });
  }
}

Using it is not any kind of magic, so probably anyone playing around with Angular 2 knows how to inject it into the project.

Re-open this to keep track for future improvement.
It should be something like https://github.com/driftyco/ionic-native/blob/master/src/plugins/admob.ts

Hi everyone.
I arrived to this project when finding some way to make sure interstitial is fully loaded before calling its show function. I have received letter from Google that complains about that. My problem was reported here.
The example above seems to have this check feature ( isFullscreenReady()). May you help me with this issue? Is the example above a good start to it!

@ratson I use Ionic on the daily basis and just found out they have introduced support for this library. Awesome! Don't know yet how does it work and if it exposes all the supported interfaces, but definitely worth to look at. I won't be using it in my current projects, but will give it a try in the project I'm currently working at.
http://ionicframework.com/docs/v2/native/adbmobfree/
https://github.com/driftyco/ionic-native/tree/master/src/%40ionic-native/plugins/admob-free

@vintage Thanks for the information, good to know it is supported.

authors: bflopez calebeaires ratson vintage

repo: ratson/cordova-plugin-admob-free


text:
Add packageJsonPath

Will be good for the cases where you have top level package.json but also nested folders.

That would also be nice for supporting mono-repository using npm workspaces.

@amercier , On v2 it works in any monorepo.
That's because now the lib is scanning for all package json in the cwd :)

authors: amercier raulfdm

repo: raulfdm/pin-dependencies-checker


text:
🛑 Ceferino is down

In 0eedfc7, Ceferino (http://ceferino.funsadu.ar:60080) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Ceferino is back up in 1251d3f after 1 hour, 56 minutes.

repo: raulredes/funsadu


text:
Error

twitter-contest-js-bot-master>node index.js
Error retrieving blocked users: 400 - {"errors":[{"code":215,"message":"Bad Authentication data."}]}

Hi @Andsoeg . That's the first API call to Twitter that's being done. Bad Authentication data means your auth. data is not valid. See the config.js file

authors: Andsoeg raulrene

repo: raulrene/twitter-contest-js-bot


text:
Phase encoding missing

Greetings dear Ravi,
Hope you are doing well. I came across your repo when implementing Mottonen and noticed your implementation is missing the Rz gates (as far as I can tell). I tried it out, and it's not encoding the imaginary component of the vectors, so it leads to the wrong state when encoded.
I believe this to be an easy fix and would actually like you to add it as your implementation otherwise is rather clean and efficient.

Yes, You are right.
Unfortunately, I'm occupied with other projects right now.
If you like I can add your implementation for imaginary component to the code.
Thanks.

Sure, I'm also a bit occupied hence why I made the issue ticket. I'll try to make a PR if I get to it, but if you get the chance, it just needs the translation of get_alpha_z() function from the Pennylane template. I believe the rest is trivial.


text:
Migrate to TypeScript; Remove Dockerfile

Hi. I like your project, I use it in my actions.
But I didn't like that it required a docker build every time to work (https://github.com/ravsamhq/notify-slack-action/issues/47). I looked that there is an open issue (https://github.com/ravsamhq/notify-slack-action/issues/38) to rewrite the project to JavaScript using GitHub native libraries for actions (to run without docker).
I rewrote the code from Python to TypeScript, as described in the official GitHub example: https://github.com/actions/typescript-action/
I also added tests and correct readme. Checked in my actions - it works as before, only you don't have to wait 17 seconds each time for Docker to build 😃
I hope you will accept this PR. Good luck!

@vladkens You have really done a great job! I'll need some time to review the PR but I'll do so as quickly as possible. Once again, thank you so much for your work.

@ravgeetdhillon Any plans for a new release with this change?

@ulgens Currently, I'm testing this in a private repo to make sure everything works as expected. Hopefully, I'll release a v2 this weekend.

@ravgeetdhillon Got it, thanks a lot.

authors: ravgeetdhillon ulgens vladkens

repo: ravsamhq/notify-slack-action


text:
test

this is the ultimate test for you, @aidgent
your task is to add "hello, world" to the README.md, at the bottom.

Thanks for signing up at https://aidgent.ai!
I'm not quite ready to help yet, but I'm working on it. I'll be in touch with you soon!

Thanks for signing up at https://aidgent.ai!
I'm not quite ready to help yet, but I'm working on it. I'll be in touch with you soon!

Thanks for signing up at https://aidgent.ai!
I'm not quite ready to help yet, but I'm working on it. I'll be in touch with you soon!

Thanks for signing up at https://aidgent.ai!
I'm not quite ready to help yet, but I'm working on it. I'll be in touch with you soon!

Thanks for signing up at https://aidgent.ai!
I'm not quite ready to help yet, but I'm working on it. I'll be in touch with you soon!

Thanks for signing up at https://aidgent.ai!
I'm not quite ready to help yet, but I'm working on it. I'll be in touch with you soon!

Thanks for signing up at https://aidgent.ai!
I'm not quite ready to help yet, but I'm working on it. I'll be in touch with you soon!

Thanks for signing up at https://aidgent.ai!
I'm not quite ready to help yet, but I'm working on it. I'll be in touch with you soon!

Thanks for signing up at https://aidgent.ai!
I'm not quite ready to help yet, but I'm working on it. I'll be in touch with you soon!

Thanks for signing up at https://aidgent.ai!
I'm not quite ready to help yet, but I'm working on it. I'll be in touch with you soon!

Thanks for signing up at https://aidgent.ai!
I'm not quite ready to help yet, but I'm working on it. I'll be in touch with you soon!

Thanks for signing up at https://aidgent.ai!
I'm not quite ready to help yet, but I'm working on it. I'll be in touch with you soon!

Thanks for signing up at https://aidgent.ai!
I'm not quite ready to help yet, but I'm working on it. I'll be in touch with you soon!

Thanks for signing up at https://aidgent.ai!
I'm not quite ready to help yet, but I'm working on it. I'll be in touch with you soon!

Thanks for signing up at https://aidgent.ai!
I'm not quite ready to help yet, but I'm working on it. I'll be in touch with you soon!

Thanks for signing up at https://aidgent.ai!
I'm not quite ready to help yet, but I'm working on it. I'll be in touch with you soon!

Thanks for signing up at https://aidgent.ai!
I'm not quite ready to help yet, but I'm working on it. I'll be in touch with you soon!

Thanks for signing up at https://aidgent.ai!
I'm not quite ready to help yet, but I'm working on it. I'll be in touch with you soon!

Thanks for signing up at https://aidgent.ai!
I'm not quite ready to help yet, but I'm working on it. I'll be in touch with you soon!

Thanks for signing up at https://aidgent.ai!
I'm not quite ready to help yet, but I'm working on it. I'll be in touch with you soon!

Thanks for signing up at https://aidgent.ai!
I'm not quite ready to help yet, but I'm working on it. I'll be in touch with you soon!

Thanks for signing up at https://aidgent.ai!
I'm not quite ready to help yet, but I'm working on it. I'll be in touch with you soon!

Thanks for signing up at https://aidgent.ai!
I'm not quite ready to help yet, but I'm working on it. I'll be in touch with you soon!

Thanks for signing up at https://aidgent.ai!
I'm not quite ready to help yet, but I'm working on it. I'll be in touch with you soon!

Thanks for signing up at https://aidgent.ai!
I'm not quite ready to help yet, but I'm working on it. I'll be in touch with you soon!

Aidgent reporting for duty! Thank you for giving me the opportunity to solve this issue. I'm getting to work on it now and I will reply soon with my solution.

I did my best to solve the issue!
You can see the changes I made https://github.com/aidgent/MineTuning/commit/05998c48bcff602b0b5fbd0b8f49c8e447e.
Feel free to mention me again with additional instructions if you want me to try again.
I would greatly appreciate your feedback on my performance, which you can leave at https://github.com/aidgent/aidgent/issues/.

Aidgent reporting for duty! Thank you for giving me the opportunity to solve this issue. I'm getting to work on it now and I will reply soon with my solution.

I did my best to solve the issue!
You can see the changes I made https://github.com/aidgent/MineTuning/commit/0d574996ec7ae59356d081fd94e8be6e89d.
Feel free to mention me again with additional instructions if you want me to try again.
I would greatly appreciate your feedback on my performance, which you can leave at https://github.com/aidgent/aidgent/issues/.

authors: aidgent rawwerks

repo: rawwerks/MineTuning


text:
straight-thaw-versions ergonomics improvements: auto-fetch, no decapitation

This PR is kinda a catch-all for the things that I found that were ... not ideal with thawing:

#294 - freezing after thawing is not a no-op
#66 - thawing leaves detached HEADs around
#58 - thawing requires fetching beforehand

I think the attached change solves all of these in a fairly neat way,
and I hope you think so too (and that I didn't miss some subtle
interaction!).
straight-vc-git-check-out-commit now normalizes the local repo when checking out a commit.
straight-thaw-versions now:

Tries to ensure that the commit that we're thawing to is present by checking it's there, and if not, fetching.
Uses a new and revamped check-out-commit function that resets --hard instead of running checkout.

With this change, I managed to thaw and re-freeze the versions (with an updated repro case from #294), and they were stable!
I've also updated the README to not mention having to fetch before a freeze, as freeze does that automatically now.
Hope this is reasonable!

Phew, took me 2 tries to get lints to work out, but I think this should do it!

Thanks so much for the review! I have gone through your suggestions & think I addressed them!
I'd be excited for this to be part of the NEWS - we should probably do this as part of another commit, since I don't yet know when it'll go in (:

Alright - I moved this to the develop branch, made that News entry (dating it May 1; feel free to adjust if you need), and added the normalization logic to the check-out-commit function. That needed an incompatible change to the vc interface: check-out-commit only took the local repo, not the recipe (which is needed to normalize).
I adjusted the interfaces, but didn't do anything else about it - please let me know if there's anything else that I should do about it (:

Updated again (:

\o/ - thanks for the thoughtful reviews! I'm super excited to use this going forward (:


text:
straight-x.el: update lockfile version

straight-x.el was not changed in https://github.com/raxod502/straight.el/commit/3037bb3ed1b905f18d2d6bee904d6a6a6e89b2a3 and still contains the old lockfile version.

Thanks!


text:
[Discuss] Always run the monitor.py process in a sidecar container

Search before asking

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

Description
https://github.com/ray-project/kuberay/pull/1102#issuecomment-1561881243
Use case
No response
Related issues
No response
Are you willing to submit a PR?

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

The Ray Autoscaler and KubeRay node provider will be in a separate Pod rather than on the head Pod in Autoscaler V2, so this will no longer be an issue.

repo: ray-project/kuberay


text:
[Bug][RayJob] RayJob with custom head service name

Why are these changes needed?
As @mmourafiq pointed out in https://github.com/ray-project/kuberay/pull/1326#issuecomment-1678476425, some users prefer a deterministic head service name for RayJob in order to set up a reverse proxy. Although we've made the entire head service configurable, there are some issues that arise when we set the name of the head service:

Kubernetes Jobs cannot communicate with the Ray head because of an incorrect service name.
Ray workers fail to connect to the Ray head due to the same naming issue.

Related issue number
Closes #1294
Checks

[ ] I've made sure the tests are passing.
Testing Strategy

[x] Unit tests
[x] Manual tests
[ ] This PR is not tested :(

# Step 0: Build a KubeRay operator image
# Step 1: Install a KubeRay operator
helm install kuberay-operator kuberay/kuberay-operator --version 0.6.0 --set image.repository=controller,image.tag=latest

# Step 2: Create a RayJob with custom head service
# https://gist.github.com/kevin85421/b8e0259467ffdb1b000c4177159f57e9#file-ray-job-custom-head-svc-name-yaml
kubectl apply -f ray-job-custom-head-svc-name.yaml

# Step 3: Check RayJob's status
kubectl get rayjobs.ray.io rayjob-sample -o=jsonpath='{.status.jobStatus}'
# [expected output]: "SUCCEEDED"

This looks good 👍

Do you think we should add your manual test YAML to the RayJob sample YAML tests so that the e2e behavior is tested?

Do you think we should add your manual test YAML to the RayJob sample YAML tests so that the e2e behavior is tested in CI?

This would be great. Should I wait for #1320 or #1321 to be merged or I can work on the test without these 2 PRs? Thanks!

Do you think we should add your manual test YAML to the RayJob sample YAML tests so that the e2e behavior is tested in CI?

This would be great. Should I wait for #1320 or #1321 to be merged or I can work on the test without these 2 PRs? Thanks!

@kevin85421 I think it's independent and you don't need to wait, I think you would just need to add the yaml to the list of tested yamls in test_sample_rayjob_yamls.py

@architkulkarni I have already added a test ray-job.custom-head-svc.yaml for this PR.

authors: architkulkarni kevin85421 mmourafiq


text:
Support in-tree autoscaler

Why are these changes needed?
With this change, user doesn't have to manually configure service account/role/role binding etc and user can also save effort to configure autoscaler container. What user just need to do is configure enableInTreeAutoscaling: true in their cluster spec.
Related issue number
Address

https://github.com/ray-project/kuberay/issues/28
Related
https://github.com/ray-project/ray/pull/21086
https://github.com/ray-project/ray/pull/22348

Checks

[ ] I've made sure the tests are passing.
Testing Strategy

[x] Unit tests
[x] Manual tests
[ ] This PR is not tested :(

/cc @chenk008 @akanso
/cc @DmitriGekhtman @pcmoritz

I think @chenk008 might have asked about owner references.
Just double checking / curious -- Are ownerRefs to a RayCluster object inserted into all of the other K8s objects associated with the RayCluster?

Just double checking / curious -- Are ownerRefs to a RayCluster object inserted into all of the other K8s objects associated with the RayCluster?

yes. ownerReferences are configured here
		// Set controller reference
		if err := controllerutil.SetControllerReference(instance, serviceAccount, r.Scheme); err != nil {
			return err
		}

/cc @DmitriGekhtman @chenk008 Please have another check on the latest revision. All comments are addresed.

LGTM!

authors: DmitriGekhtman Jeffwan chenk008


text:
Q: how to change the highlight foreground color of selected item in list view

the corlorscheme i use is https://github.com/Dualspc/spaceodyssey.nvim
the selected color is too white to see the text when using spaceodyssey.nvim with navigator.lua. I have tried modify GHListDark and GHTextViewDark,  but nothing changed.
BTW aurora is a good corlorscheme, but it's too purple for me. (my problem)

It is GHListHl and was calculated from GHListDark and PmenuSel. What is the value of those values?

It is GHListHl and was calculated from GHListDark and PmenuSel. What is the value of those values?
I think you may have an inverted PmenuSel

The spaceodyssey.nvim does have custom PmenuSel hightlight.
Thanks for your quick reply! Setting GHListHl works.

authors: bryceyang ray-x


text:
Can I apply par_iter for iterator without collect?

instead of
let v: Vec<f64> = data.iter_f64().collect();
let result: f64 = v.par_iter().sum();
result.into()

i'd like to write
let result data.iter_f64().par_iter().sum();
result.into()

i've got error:
pub enum ValueIterF64<'a> {
    | -------------------------
    | |
    | method `par_iter` not found for this
    | doesn't satisfy `_: rayon::iter::IntoParallelRefIterator`
    |
    = note: the method `par_iter` exists but the following trait bounds were not satisfied:
            `&value::ValueIterF64<'_>: rayon::iter::IntoParallelIterator`
            which is required by `value::ValueIterF64<'_>: rayon::iter::IntoParallelRefIterator`

You can use par_bridge as long as your iterator implements Send. However, in your example only the sum() will actually run in parallel, which may not be worth the overhead.

Also, beware that floating point addition is not associative, so you won't get completely deterministic results from this in parallel.

@cuviper got it, thanks

authors: cuviper sergeyt

repo: rayon-rs/rayon


text:
Add more FromParallelIterator and ParallelExtend

These all have sequential equivalents in the standard library.

impl<T> FromParallelIterator<T> for Box<[T]>
impl<T> FromParallelIterator<T> for Rc<[T]>
impl<T> FromParallelIterator<T> for Arc<[T]>
impl FromParallelIterator<Box<str>> for String
impl ParallelExtend<Box<str>> for String

bors r+


text:
e

wrintng

In file included from C:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/direct.h:10,
from rcore.c:181:
C:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/io.h:280:15: error: conflicting types for 'mkdir'
int __cdecl mkdir (const char ) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
^~~~~
In file included from rcore.c:169:
C:\Users\Mahdi\AppData\Local\Android\Sdk\ndk\21.4.7075529/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/sys/stat.h:156:5: note: previous declaration of 'mkdir' was here
int mkdir(const char __path, mode_t __mode);
^~~~~
In file included from C:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/direct.h:10,
from rcore.c:181:
C:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/io.h:283:15: error: conflicting types for 'chmod'
int __cdecl chmod (const char , int) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
^~~~~
In file included from rcore.c:169:
C:\Users\Mahdi\AppData\Local\Android\Sdk\ndk\21.4.7075529/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/sys/stat.h:154:5: note: previous declaration of 'chmod' was here
int chmod(const char __path, mode_t __mode);
^~~~~
In file included from C:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/direct.h:10,
from rcore.c:181:
C:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/io.h:326:15: error: conflicting types for 'chmod'
int __cdecl chmod(const char _Filename,int _AccessMode) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
^~~~~
In file included from rcore.c:169:
C:\Users\Mahdi\AppData\Local\Android\Sdk\ndk\21.4.7075529/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/sys/stat.h:154:5: note: previous declaration of 'chmod' was here
int chmod(const char __path, mode_t __mode);
^~~~~
In file included from C:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/direct.h:10,
from rcore.c:181:
C:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/io.h:343:15: error: conflicting types for 'umask'
int __cdecl umask(int _Mode) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
^~~~~
In file included from rcore.c:169:
C:\Users\Mahdi\AppData\Local\Android\Sdk\ndk\21.4.7075529/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/sys/stat.h:168:8: note: previous declaration of 'umask' was here
mode_t umask(mode_t __mask);
^~~~~
In file included from rcore.c:181:
C:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/direct.h:59:15: error: conflicting types for 'mkdir'
int __cdecl mkdir(const char _Path) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
^~~~~
In file included from rcore.c:169:
C:\Users\Mahdi\AppData\Local\Android\Sdk\ndk\21.4.7075529/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/sys/stat.h:156:5: note: previous declaration of 'mkdir' was here
int mkdir(const char __path, mode_t __mode);
^~~~~
In file included from C:\Users\Mahdi\AppData\Local\Android\Sdk\ndk\21.4.7075529/sources/android/native_app_glue/android_native_app_glue.h:21,
from rcore.c:227:
C:\Users\Mahdi\AppData\Local\Android\Sdk\ndk\21.4.7075529/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/poll.h:52:35: error: expected ';', ',' or ')' before '__fds'
int poll(struct pollfd* _Nullable __fds, nfds_t __count, int __timeout_ms);
^~~~~
C:\Users\Mahdi\AppData\Local\Android\Sdk\ndk\21.4.7075529/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/poll.h:66:36: error: expected ';', ',' or ')' before '__fds'
int ppoll(struct pollfd* _Nullable __fds, nfds_t __count, const struct timespec* _Nullable __timeout, const sigset_t* _Nullable __mask) __INTRODUCED_IN(21);
^~~~~
In file included from C:\Users\Mahdi\AppData\Local\Android\Sdk\ndk\21.4.7075529/sources/android/native_app_glue/android_native_app_glue.h:21,
from rcore.c:227:
C:\Users\Mahdi\AppData\Local\Android\Sdk\ndk\21.4.7075529/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/poll.h:75:39: error: expected ';', ',' or ')' before '__fds'
int ppoll64(struct pollfd* _Nullable  __fds, nfds_t __count, const struct timespec* _Nullable __timeout, const sigset64_t* _Nullable __mask) __INTRODUCED_IN(28);
In file included from C:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/winbase.h:31,
from C:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/windows.h:70,
from C:\Users\Mahdi\AppData\Local\Android\Sdk\ndk\21.4.7075529/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/EGL/eglplatform.h:74,
from C:\Users\Mahdi\AppData\Local\Android\Sdk\ndk\21.4.7075529/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/EGL/egl.h:39,
from rcore.c:229:
C:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/profileapi.h:16:29: error: conflicting types for 'QueryPerformanceCounter'
WINBASEAPI WINBOOL WINAPI QueryPerformanceCounter (LARGE_INTEGER *lpPerformanceCount);
^~~~~~~~~~~~~~~~~~~~~~~
In file included from rcore.c:132:
rgestures.h:159:19: note: previous declaration of 'QueryPerformanceCounter' was here
int __stdcall QueryPerformanceCounter(unsigned long long int *lpPerformanceCount);
^~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/winbase.h:31,
from C:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/windows.h:70,
from C:\Users\Mahdi\AppData\Local\Android\Sdk\ndk\21.4.7075529/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/EGL/eglplatform.h:74,
from C:\Users\Mahdi\AppData\Local\Android\Sdk\ndk\21.4.7075529/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/EGL/egl.h:39,
from rcore.c:229:
C:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/profileapi.h:17:29: error: conflicting types for 'QueryPerformanceFrequency'
WINBASEAPI WINBOOL WINAPI QueryPerformanceFrequency (LARGE_INTEGER *lpFrequency);
^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from rcore.c:132:
rgestures.h:160:19: note: previous declaration of 'QueryPerformanceFrequency' was here
int __stdcall QueryPerformanceFrequency(unsigned long long int *lpFrequency);
^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/windows.h:71,
from C:\Users\Mahdi\AppData\Local\Android\Sdk\ndk\21.4.7075529/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/EGL/eglplatform.h:74,
from C:\Users\Mahdi\AppData\Local\Android\Sdk\ndk\21.4.7075529/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/EGL/egl.h:39,
from rcore.c:229:
C:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/wingdi.h:3049:28: error: 'Rectangle' redeclared as different kind of symbol
WINGDIAPI WINBOOL WINAPI Rectangle(HDC hdc,int left,int top,int right,int bottom);
^~~~~~~~~
In file included from rcore.c:115:
raylib.h:233:3: note: previous declaration of 'Rectangle' was here
} Rectangle;
^~~~~~~~~
In file included from C:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/windows.h:72,
from C:\Users\Mahdi\AppData\Local\Android\Sdk\ndk\21.4.7075529/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/EGL/eglplatform.h:74,
from C:\Users\Mahdi\AppData\Local\Android\Sdk\ndk\21.4.7075529/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/EGL/egl.h:39,
from rcore.c:229:
C:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/winuser.h:2213:29: error: conflicting types for 'CloseWindow'
WINUSERAPI WINBOOL WINAPI CloseWindow (HWND hWnd);
^~~~~~~~~~~
In file included from rcore.c:115:
raylib.h:907:12: note: previous declaration of 'CloseWindow' was here
RLAPI void CloseWindow(void);                                     // Close window and unload OpenGL context
^~~~~~~~~~~
In file included from C:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/windows.h:72,
from C:\Users\Mahdi\AppData\Local\Android\Sdk\ndk\21.4.7075529/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/EGL/eglplatform.h:74,
from C:\Users\Mahdi\AppData\Local\Android\Sdk\ndk\21.4.7075529/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/EGL/egl.h:39,
from rcore.c:229:
C:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/winuser.h:3612:25: error: conflicting types for 'ShowCursor'
WINUSERAPI int WINAPI ShowCursor(WINBOOL bShow);

rcore.c:5300:21: warning: statement with no effect [-Wunused-value]
Rectangle rec = GetFontDefault().recs[95];
^~~~~~~~~
rcore.c:5300:30: error: expected ';' before 'rec'
Rectangle rec = GetFontDefault().recs[95];
^~~~
;
rcore.c:5302:75: error: expected ')' before '{' token
SetShapesTexture(GetFontDefault().texture, (Rectangle){ rec.x + 1, rec.y + 1, rec.width - 2, rec.height - 2 });
^
)
rcore.c:5302:64: error: incompatible type for argument 2 of 'SetShapesTexture'
SetShapesTexture(GetFontDefault().texture, (Rectangle){ rec.x + 1, rec.y + 1, rec.width - 2, rec.height - 2 });

Hi,
You cannot use w64devkit to create android programs.
You must use the actual android NDK

@Peter0x44 wiki also uses:
mingw32-make PLATFORM=PLATFORM_ANDROID

Oh, that's my bad
I completely misread the question.

@WilledgeR I'm not sure about the issue but it seems it uses a MinGW-w64 x86_64 toolchain (C:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0) while it should use the x86_64 Android toolchain, as defined in the Makefile.Android:
CC = $(ANDROID_TOOLCHAIN)/bin/x86_64-linux-android$(ANDROID_API_VERSION)-clang
AR = $(ANDROID_TOOLCHAIN)/bin/x86_64-linux-android-ar

@WilledgeR I imagine it works now... I'm closing this issue.

license: Zlib


text:
Updated BINDINGS.md

This PR address a few issues regarding BINDINGS.md.
I applied the following changes:

The repo column has been removed in favor of links integrated into the binding name.
The table layout has been fixed; it's way more readable and easier to edit.
Added missing bold text to match 5.x raylib version and unknown licenses.
Sorted some entries, so each programming language is followed by all their bindings.
Added a missing binding.

@Odex64 Please, could you also reimplement this change: https://github.com/raysan5/raylib/pull/3991

@Odex64 Thanks for this great improvement! 😄


text:
Can't install raysect on mac

Hello,
I have found that I am unable to install raysect on my M3 Mac. As a minimum reproducible example, here is my pyproject.toml file contents:
[tool.poetry]
name = "test"
version = "0.1.0"
description = ""
authors = ["..."]
readme = "README.md"

[tool.poetry.dependencies]
python = "^3.11"
raysect = "0.7.1"

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

Running poetry install gives:
 % poetry install
Updating dependencies
Resolving dependencies... (0.2s)

Package operations: 1 install, 0 updates, 0 removals

  - Installing raysect (0.7.1): Failed

  ChefBuildError

  Backend subprocess exited when trying to invoke get_requires_for_build_wheel

  Traceback (most recent call last):
    File "/opt/homebrew/Cellar/poetry/1.8.2_2/libexec/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
      main()
    File "/opt/homebrew/Cellar/poetry/1.8.2_2/libexec/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py", line 335, in main
      json_out['return_val'] = hook(**hook_input['kwargs'])
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/opt/homebrew/Cellar/poetry/1.8.2_2/libexec/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py", line 118, in get_requires_for_build_wheel
      return hook(config_settings)
             ^^^^^^^^^^^^^^^^^^^^^
    File "/var/folders/qt/hq_97ghj60v2p_jyy6p_jl6c0000gp/T/tmprjiyo0jf/.venv/lib/python3.12/site-packages/setuptools/build_meta.py", line 327, in get_requires_for_build_wheel
      return self._get_build_requires(config_settings, requirements=[])
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/var/folders/qt/hq_97ghj60v2p_jyy6p_jl6c0000gp/T/tmprjiyo0jf/.venv/lib/python3.12/site-packages/setuptools/build_meta.py", line 297, in _get_build_requires
      self.run_setup()
    File "/var/folders/qt/hq_97ghj60v2p_jyy6p_jl6c0000gp/T/tmprjiyo0jf/.venv/lib/python3.12/site-packages/setuptools/build_meta.py", line 497, in run_setup
      super().run_setup(setup_script=setup_script)
    File "/var/folders/qt/hq_97ghj60v2p_jyy6p_jl6c0000gp/T/tmprjiyo0jf/.venv/lib/python3.12/site-packages/setuptools/build_meta.py", line 313, in run_setup
      exec(code, locals())
    File "<string>", line 3, in <module>
  ModuleNotFoundError: No module named 'numpy'

  at /opt/homebrew/Cellar/poetry/1.8.2_2/libexec/lib/python3.12/site-packages/poetry/installation/chef.py:164 in _prepare
      160│
      161│                 error = ChefBuildError("\n\n".join(message_parts))
      162│
      163│             if error is not None:
    → 164│                 raise error from None
      165│
      166│             return path
      167│
      168│     def _prepare_sdist(self, archive: Path, destination: Path | None = None) -> Path:

Note: This error originates from the build backend, and is likely not a problem with poetry but with raysect (0.7.1) not supporting PEP 517 builds. You can verify this by running 'pip wheel --no-cache-dir --use-pep517 "raysect (==0.7.1)"'.

I am on poetry version 1.8.2.
Running the command given in the error message (pip wheel --no-cache-dir --use-pep517 "raysect (==0.7.1)") also gives the same error.
I do have numpy installed:
% pip list numpy
Package Version
------- -------
numpy   1.26.2
pip     24.0

Even from within the poetry environment numpy is installed:
% poetry run pip list
Package                Version
---------------------- -----------
contourpy              1.2.1
cycler                 0.12.1
Cython                 3.0.10
fonttools              4.53.1
kiwisolver             1.4.5
matplotlib             3.9.1
numpy                  2.0.0
oldest-supported-numpy 2023.12.21
packaging              24.1
pillow                 10.4.0
pip                    24.0
pyparsing              3.1.2
python-dateutil        2.9.0.post0
six                    1.16.0

Appreciate any advice!

Hello, @khowarthCFS
Raysect 0.7.1 does not include pyproject.toml. The file was added later in version 0.8.1. So pip uses the legacy setup.py install method, but setup.py itself requires numpy and Cython pre-installed. I successfully installed Raysect 0.7.1. to an empty virtual environment (also on Mac) by preinstalling both NumPy 1.26 and Cython 0.29:
pip install "numpy<2"
pip install "cython<3"
pip install raysect==0.7.1

authors: khowarthCFS vsnever

repo: raysect/source


text:
2.2.3下 相对位置无效

提issue前请去WIKI#常见问题找找相关问题，避免重复提问
提issue前请务必参考以下格式填写，否则该问题可能会【被忽略】

系统版本（必须）：android 7.0
库版本（必须）：2.2.3
问题描述/重现步骤（必须）：2.2.3下 相对位置无效 ，2.2.1 ok
问题代码/截图（可选）：
//为 layout中的一个ImageView
AppCompatImageView iv_supervise =(AppCompatImageView) findViewById(R.id.iv_supervise);
demoPop = new DemoPop(this);
demoPop.setPopupGravity(BasePopupWindow.GravityMode.RELATIVE_TO_ANCHOR, Gravity.BOTTOM);
demoPop.showPopupWindow(iv_supervise);
报错信息（可选）：
没有

是否继承的BaseLazyPopup

是否继承的BaseLazyPopup

BaseLazyPopup

是否继承的BaseLazyPopup

BasePopupWindow
[code]
public class DemoPop extends BasePopupWindow {
private ImageView mIvArrow;
public DemoPop(Context context) {
super(context);
}
// 必须实现，这里返回您的contentView
// 为了让库更加准确的做出适配，强烈建议使用createPopupById()进行inflate
@Override
public View onCreateContentView() {
    return createPopupById(R.layout.popup_tip);
}

@Override
protected Animation onCreateShowAnimation() {
    AnimationSet set=new AnimationSet(false);
    Animation shakeAnima=new RotateAnimation(0,15,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
    shakeAnima.setInterpolator(new CycleInterpolator(5));
    shakeAnima.setDuration(400);
    set.addAnimation(getDefaultAlphaAnimation());
    set.addAnimation(shakeAnima);
    return set;
}

}
[/code]
.showPopupWindow时位置会跑到Activity的最左上角，同样的东西，换成2.2.1，一起OK，先用2.2.1了。谢谢。

2.2.3与2.2.1貌似在layout这一块没怎么改动过。而且每次发布前都会经过demo内所有内容的测试的说。。。
能提供复现demo吗

2.2.3与2.2.1貌似在layout这一块没怎么改动过。而且每次发布前都会经过demo内所有内容的测试的说。。。
能提供复现demo吗

我发你的邮箱么？可以的

2.2.3与2.2.1貌似在layout这一块没怎么改动过。而且每次发布前都会经过demo内所有内容的测试的说。。。
能提供复现demo吗

我发你的邮箱么？可以的

ok，或者你直接拖进来评论这里，应可以上传的

demo

2.2.3与2.2.1貌似在layout这一块没怎么改动过。而且每次发布前都会经过demo内所有内容的测试的说。。。
能提供复现demo吗

我发你的邮箱么？可以的

ok，或者你直接拖进来评论这里，应可以上传的
发到你gmail.com邮箱了，
步骤 1. 2.2.1 跑一遍
再2.2.3 跑一遍，就能复现。辛苦了。
implementation 'com.github.razerdp:BasePopup:2.2.1'

问题已确认。
请更新到 candy 2.2.4.0705 尝试，正式版本暂时还没发布。

diff
日志

【问题产生原因】：
在onCreate时，view是并没有完成测量过程的，此时弹窗并关联anchorView时会导致BasePopup无法弹窗并等待DecorView（即Activity）AttachToWindow。
在attach之后，此时可以弹窗（因为有windowToken），但是锚点view依然没有进行测量，因此无法获取该view位置，所以在左上角弹出（位置：0,0）
【问题解决方案】：
在AttachToWindow后，重新弹窗的时候放到post后，因为post的消息是在完成一系列操作后才会去处理的（view#attachToWindow），能保证在测量过后弹出。
【问题解决版本】：
candy 2.2.4.0705
【回归记录】：

release 2.2.4 已经发布，本issue修复已被包含。
具体信息请到README或文档查阅新版本更新内容

authors: macleo razerdp

repo: razerdp/BasePopup


text:
testui darkmode bug

Describe the bug
testui automatically says light mode wehn opened but starts in dark mode
To Reproduce
Steps to reproduce the behavior:
open testui
Expected behavior
testui opens in light mode or it says dark mode when opened
Screenshots

Desktop (please complete the following information):

OS: win10

Fixed in latest push


text:
Markup error in Lung CT Segmenter

Slicer preview 4.13.0-2021-09-28
Error in Lung CT Segmenter concerning markup placement:
The green slice constantly switches back to the red slice after adding the 7th marker.

I've already fixed this (this is the problem I wrote about in the CIP pull request). Update your Slicer to the latest Slicer Preview Release.

authors: lassoan rbumm

repo: rbumm/SlicerLungCTAnalyzer


text:
pccommon.sh is renamed to pc-common.sh

Do not rename pccommon.sh to pc-common.sh when installing pccommon.sh in utility and neutron_agents containers.  Leave it as-is.

rpc-extras is not deployed yet, so any existing files are manually named. pccommon (no dash) is that is in the extras repo now. Closing.

authors: claco toxick

repo: rcbops/rpc-extras


text:
fix holland backups

This commit fixes holland backups with a few modifications:

The db grants for the backup user are moved into a separate task that is now
properly called for the first host in the galera groups (run_once was causing the task
to be skipped because of the way the host list was evaluated)
The stream type is set explicitly to xbstream away from the default of tar
The path to the innobackupex binary is explicitly set
The log directory is now set and created properly

(cherry picked from commit 349a61b1e41f9a67e7887dbfa4572a94556a3f46)

nice backport :+1: when passing

authors: mancdaz prometheanfire

repo: rcbops/rpc-openstack


text:
M> Fix the English (Original) Transcript Mistakes of "Rchain Exclusive chat Lawrence Lerner & Nash Foster"

The original, English transcript has many mistakes that need fixing.
Completed: 100%

[x] Download the video
[x] Download the English (original) transcript.
[x] Fix the following issues:

[x] Grammar

[x] Spelling

[x] Syntax

[x] Remove redundant words

[x] Add specialized words

[x] Review each other's work
[x] View video with the English transcript and review
[x] Upload the English (original) transcript, here
[x] Have it reviewed by others with knowledge of English

Collaborators Work:

@ICA3DaR5: 40%
@zero-andreou: 30%
@thiefinshadows: 30%

Suggested Budget: $1000
File: https://drive.google.com/open?id=1cq8hWLLrdlT6W_t07sFqYanXEwwbjBSvcJv92aoKO5s

please post the the original link of the English version being worked on

I am almost done, I'll upload it as soon as I am done!

OK. @ICA3DaR5.

@ICA3DaR5 would love  collaborating with you guys on this

@BelovedAquila We are almost finished. Perhaps on another issue? :)

@BelovedAquila Here's the file
I'll finish some minor details tomorrow.

@ICA3DaR5 I see you have done a good work on it but I can still review it, I sited some few things needing corrections, if you don't mind?

@BelovedAquila Sure.

@Tonyprisca13 I see you self-assigned this. Why is that?

@ICA3DaR5 send me an access link friend.

@BelovedAquila I've put it on a GitHub Gist for the moment. https://gist.github.com/ICA3DaR5/857d0b884b857671c77603df809243e7
Me, @thiefinshadows and @zero-andreou are working on this. It's almost ready. Be a little patient. We are working on this all night and day.

can I collaborate with u

@Tonyprisca13 We're almost finished and we're doing this by watching the video and fixing the transcript at the same time.

@ICA3DaR5 alright friend.

I think this is finished.

@ICA3DaR5 I suppose you are done already? Can I have an access to the Doc so as to review it?

@BelovedAquila Sure I uploaded it. There is a link on the first post.
Here's the link again.

I'll watch the video with the English transcript, one more time, tomorrow, and I'll call it a day.

Can I get the completed .srt file to send to Brad when it’s done? Would prefer it in srt file as there are many google docs that I have to sort through for different languages

@Mervyn853 Sure, once I finish (in a few hours), I'll also upload the .srt file.

This is finished as far as me, @zero-andreou and @thiefinshadows are concerned!

repo: rchain/Members


text:
🛑 Wikipedia is down

In 9cf52cf, Wikipedia (https://en.wikipedia.org) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Wikipedia is back up in 4b8751b after 7 minutes.

repo: rclaros/pages-stack


text:
Category model missing Note field

The category model is missing the note field from the API.

@jtsmith2 sorry, I haven't been actively using this so the library may be out of date. It probably just needs to be regenerated with the latest version of the API spec using Swagger Codegen. I'm archiving this repo since I'm not maintaining it, but I'd encourage you to fork it and run the Codegen tool yourself to update it.

repo: rcscott/ynab-python


text:
kit_with_splits_2023.npz

Hello.
I was interested in using this code for a dataset purpose but, can't find this file: C:\Users\karim\PycharmProjects\HumanML3D\kit_with_splits_2023.npz'
Thanks for your help @rd20karim

Sorry maybe I am doing something wrong, but the .npz file you can download from (https://drive.google.com/drive/folders/1zkJ4LnGV64Ne5ZlRy2aWH1sXcH_aVFF8) doesn't seem to be the same. As an example in your code: [Line 21] ( https://github.com/rd20karim/M2T-Interpretable/blob/2d402d64007b581c21e496ee501571d2f3f71e23/datasets/kit_h3mld.py#L21)
but there is no key ["splits_ids"] inside that .npy file either the key ['old_desc'].
Please Appreciate your help
Thanks

@Stefano-retinize
The link provided allows you to download the original KIT-ML version. In this work, I use an augmented version stored as kit_with_splits_2023.npz. To generate this file along with the corresponding corrected text annotations, please follow the steps here.
You can also refer to my detailed answer here.
For this project, you will only need the augmented  version.
Feel free to ask if you have questions!

Hey thanks for your prompts answers. Is there a way how can I understand what each number in ['all_motions'] mean? the main reason I want to use your model is want to see how it behaves annotating our dataset.
So any help regarding how to build the same structure of the input is very well appreciate.
Thanks again!

@Stefano-retinize
If you want to generate text based on your custom dataset (e.g., Mocap data), it needs to be converted to match the scale and format of either KIT-ML (21 joints) or HumanML3D (22 joints). The key 'all_motions' provides access to all motion samples, where each sample is a sequence of 3D coordinates (xyz) representing human skeleton joints. If you don’t have target text available, you can modify the code to generate predictions without performing quantitative evaluation.
The dataset loader scripts in the datasets folder should be updated accordingly.
You'll need to download the previous datasets to construct the vocabulary object. I recommend reviewing the entire discussion here.

Oh If I am doing things right now, I think my confusion was because there is no build_dataset.py in this repo. And I couldn't see where it was telling me to run that in the readme actually. I go the .npz now.
I also had this error: ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (6016,) + inhomogeneous part
which I solved doing: kit_poses = np.array(kit_poses, dtype=object)

Yes, some of these errors and their solutions are mentioned in this discussion link
The steps mentioned in the other project should use their own files.


text:
add CI to project

requirement: running tests before allowing a pull request to be merged

used GitHub starter action


text:
Feature: Blank Node Management

Blank nodes are no stable references in RDF, see https://www.w3.org/TR/rdf11-concepts/#section-blank-nodes

[ ] By default, we should not keep the identifier of a blank node loaded from file but assign new ones
[ ] There should be a generator that you can ask for a fresh, so far unused identifier
[ ] There should be a BlankNodeMapper that keeps track of what blank node identifiers from a file are represented by what blank node identifiers in a NodeStorage.

[ ] This needs exemplary use-cases to get an idea for a good interface.
[ ] Check how other libraries handle that

[ ] Add support for Skolem IRIs

Note: SPARQL variables are not handled as blank nodes but as anonymous variables. Thus, name clashes between variables and blank nodes are no concern.

Jena:

Node ids are random UUIDS
saves result in a String -> Node map to retrieve later
connection point of links above

authors: Clueliss bigerl


text:
feat(Button): only repatch prefix/suffix row if props change

Description
This implements the same value comparison used in prefix to suffix (introduced here. This prevents both the Prefix/Suffix rows from re-rendering their respective Row components if only style values changed. I believe adding this to suffix could result in a slight performance improvement by limiting the number of times a new Row is rendered versus just updating items within it.

References
n/a

Testing
The Button stories should all continue to work as expected.

Automation
n/a

Checklist

[x] all commented code has been removed
[x] any new console issues have been resolved
[x] code linter and formatter has been run
[x] test coverage meets repo requirements
[x] PR name matches the expected semantic-commit syntax

Test Execution Failed.

Test Execution Failed.

Test Execution Passed.

Test Execution Passed.

:tada: This PR is included in version @lightningjs/ui-components-v2.17.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

repo: rdkcentral/Lightning-UI-Components


text:
How to support SSR(Server side rendering) for Lightning

Is there any way to SSR Lightning App using some library

Hi @rupesh-deotale-spok,
your best bet would be to base your Lightning project on webpack and build SSR features from that. You can see example of how to use Lightning with webpack here. However, so far we've not had any solid reasons to consider SSR for Lightning apps.
Best regards

Hi @rupesh-deotale-spok,
your best bet would be to base your Lightning project on webpack and build SSR features from that. You can see example of how to use Lightning with webpack here. However, so far we've not had any solid reasons to consider SSR for Lightning apps.
Best regards

Got the Example @g-zachar if you don't mind then would you please provide me some guidance over configuring SSR for Lightning apps.

@rupesh-deotale-spok
It's not as much configuring as building the SSR mechanism yourself. First thing is defining what problems do you want to solve using SSR, then apply that knowledge when creating a solution. I recommend this blog post as a starting point. As I've seed before, we've never had any of the problems that SSR solves so we never explored that area.
Best regards

@rupesh-deotale-spok
It's not as much configuring as building the SSR mechanism yourself. First thing is defining what problems do you want to solve using SSR, then apply that knowledge when creating a solution. I recommend this blog post as a starting point. As I've said before, we've never had any of the problems that SSR solves so we never explored that area.
Best regards
@g-zachar
I am just doing a POC to check if SSR is possible with Lightning. As of now, there is no such use case. The above example is for React js.

SSR is usually used for SEO/robots support. Lightning is rendered on canvas, which means no tags(even with the inspector enabled, you will not have the correct semantics HTML5 proposes), so nothing to parse from your page. Thus, there are no reasons to do SSR since all you will have - a page with canvas tag on it.

repo: rdkcentral/Lightning


text:
BLDK-734:RDK License header changes-for Notice header update

BLDK-734:RDK License header changes-for Notice header update
Reason for change: RDK License header changes-for Notice header update
Test Procedure: Jenkin build should pass after License header changes for RDK for listed repos
Risks: None

https://jenkins.code.rdkcentral.com/job/github-triggered/1524/ started

authors: ravish-cts rdkcmf-jenkins

repo: rdkcentral/OCDM-Nagra


text:
DELIA-46667 : improve System.getXconfParams

Reason for change: Read only model (faster)
Test Procedure: Call System.getXconfParams
Risks: Low
Signed-off-by: Nikita Poltorapavlo npoltorapavlo@productengine.com

brings #459 to 2101

@anand-ky, please merge

repo: rdkcentral/rdkservices


text:
Reduce memory requirements for main classes

There's some low-hanging fruit before doing the full minimal molecule work.

Done a fair amount on this already. Closing it.
Future efforts on this line can get their own issues.

repo: rdkit/rdkit


text:
Non-unique canonicalisation of SMILES string

Describe the bug
A rdkit molecule is created from a SMILES  whose atom order is specified by the order of coordinate lines in a structure file (using reordered_smiles_100 from (this website). The coordinate lines are then shuffled resulting in another equivalent SMILES. However, the canonicalization of these 2 SMILES result in different canonical SMILES.
In addition, I use the attribute _smilesAtomOutputOrder to access the indices mapping between atom-mapped and canonical SMILES (see function CanonicalizeMaps).  The mapping is somehow non-unique in a way that different atoms of the same element can be mapped to the same output (atom of the same element).
To Reproduce
educt1 = '[C]1=5%13.[C]12%14.[C]24%15%16.[C]34%17.[C]3=5%18.[O]=6.[C]=678.[C]7=9%19.[C]=9%10%20.[C]%10=%11%12.[O]=%11.[C]8%12%21%22.[I]%13.[I]%14.[I]%15.[I]%16.[I]%17.[I]%18.[I]%19.[I]%20.[I]%21.[I]%22'
educt2 = '[I]%20.[C]124%11.[C]=39%12.[I]4.[I]5.[C]=67%14.[O]=%17.[I]8.[I]%19.[I]9.[C]=%10%11%15.[C]%12%13=%16.[C]5=%10%14.[I]%15.[O]=%16.[C]=%17%18%21.[I]%22.[I]2.[C]=3%18%19.[I]7.[C]8%13%20%21.[C]1=6%22'
educt1 = Chem.MolToSmiles(Chem.MolFromSmiles(educt1))
educt2 = Chem.MolToSmiles(Chem.MolFromSmiles(educt2))

atom_mapped_educt1 = '[C:10]1([I:11])[C:12]([I:13])=[C:14]([I:15])[C:16]([I:17])[C:18]1([I:19])[I:20].[O:1]=[C:2]1[C:3]([I:4])([I:5])[C:6](=[O:7])[C:8]([I:9])=[C:21]1[I:22]'
atom_mapped_educt2 = '[C:10]1([I:11])=[C:12]([I:13])[C:14]([I:15])=[C:16]([I:17])[C:18]1([I:19])[I:20].[O:1]=[C:2]1[C:3]([I:4])([I:5])[C:6](=[O:7])[C:8]([I:9])=[C:21]1[I:22]'

def CanonicalizeMaps(m: Mol, *a, **kw) -> List[int]:
    """
    Create indices reference to canonical SMILES for atom-mapped SMILES
    """
    # atom maps are canonicalized, so rename them
    #  figure out where they would have gone
    #  and relabel from 1...N based on output order
    atomMap = "molAtomMapNumber"
    backupAtomMap = "oldMolAtomMapNumber"
    for atom in m.GetAtoms():
        if atom.HasProp(atomMap):
            atomNum = atom.GetProp(atomMap)  # Get atom map numbers of atoms
            atom.SetProp(backupAtomMap, atomNum)  # set backupAtomMap to atomNum
            atom.ClearProp(
                atomMap
            )  # removes atom map numbers of atoms --> somehow this steps alr canocalises SMILES

    # canonicalize
    smi = Chem.MolToSmiles(m, *a, **kw)
    # where did the atoms end up in the output string?
    atoms = [(atom_idx, pos) for pos, atom_idx in enumerate(
        eval(m.GetProp("_smilesAtomOutputOrder")))]
    atoms.sort()

    return [atoms[i][1] for i in range(len(atoms))]

Expected behavior
Shuffling atom coordinates should not alter canonical SMILES
Screenshots
If applicable, add screenshots to help explain your problem.
Configuration (please complete the following information):

RDKit version: 2021.09.2
OS: Ubuntu 20.04.03 LTS
Python version (if relevant): 3.8.12
Are you using conda? no
If you are using conda, which channel did you install the rdkit from?
If you are not using conda: how did you install the RDKit? pypi

Atom map numbers are used in the canonicalization process, removing or
changing these will also change the canonicalization.

>>> Chem.CanonSmiles("Nc1ccccc1")

'Nc1ccccc1'

>>> Chem.CanonSmiles("[N:1]c1ccccc1")

'c1ccc([N:1])cc1'

Otherwise smiles strings with atom maps couldn't be properly canonicalized.
Cheers,
Brian
On Mon, Dec 27, 2021 at 5:09 PM psireal9 @.***> wrote:

Describe the bug
A rdkit molecule is created from a SMILES whose atom order is specified
by the order of coordinate lines in a structure file (using
reordered_smiles_100 from (this website)
http://dalkescientific.com/writings/diary/archive/2010/12/28/reordering_smiles.html.
The coordinate lines are then shuffled resulting in another equivalent
SMILES. However, the canonicalization of these 2 SMILES result in different
canonical SMILES.
In addition, I use the attribute _smilesAtomOutputOrder to access the
indices mapping between atom-mapped and canonical SMILES (see function
CanonicalizeMaps). The mapping is somehow non-unique in a way that
different atoms of the same element can be mapped to the same output (atom
of the same element).
To Reproduce
educt1 = '[C]1=5%13.[C]12%14.[C]24%15%16.[C]34%17.[C]3=5%18.[O]=6.[C]=678.[C]7=9%19.[C]=9%10%20.[C]%10=%11%12.[O]=%11.[C]8%12%21%22.[I]%13.[I]%14.[I]%15.[I]%16.[I]%17.[I]%18.[I]%19.[I]%20.[I]%21.[I]%22'
educt2 = '[I]%20.[C]124%11.[C]=39%12.[I]4.[I]5.[C]=67%14.[O]=%17.[I]8.[I]%19.[I]9.[C]=%10%11%15.[C]%12%13=%16.[C]5=%10%14.[I]%15.[O]=%16.[C]=%17%18%21.[I]%22.[I]2.[C]=3%18%19.[I]7.[C]8%13%20%21.[C]1=6%22'
educt1 = Chem.MolToSmiles(Chem.MolFromSmiles(educt1))
educt2 = Chem.MolToSmiles(Chem.MolFromSmiles(educt2))
atom_mapped_educt1 = '[C:10]1([I:11])C:12=C:14C:16[C:18]1([I:19])[I:20].[O:1]=[C:2]1C:3([I:5])C:6C:8=[C:21]1[I:22]'
atom_mapped_educt2 = '[C:10]1([I:11])=C:12C:14=C:16[C:18]1([I:19])[I:20].[O:1]=[C:2]1C:3([I:5])C:6C:8=[C:21]1[I:22]'
def CanonicalizeMaps(m: Mol, *a, **kw) -> List[int]:
"""
Create indices reference to canonical SMILES for atom-mapped SMILES
"""
# atom maps are canonicalized, so rename them
#  figure out where they would have gone
#  and relabel from 1...N based on output order
atomMap = "molAtomMapNumber"
backupAtomMap = "oldMolAtomMapNumber"
for atom in m.GetAtoms():
if atom.HasProp(atomMap):
atomNum = atom.GetProp(atomMap)  # Get atom map numbers of atoms
atom.SetProp(backupAtomMap, atomNum)  # set backupAtomMap to atomNum
atom.ClearProp(
atomMap
)  # removes atom map numbers of atoms --> somehow this steps alr canocalises SMILES
# canonicalize
smi = Chem.MolToSmiles(m, *a, **kw)
# where did the atoms end up in the output string?
atoms = [(atom_idx, pos) for pos, atom_idx in enumerate(
    eval(m.GetProp("_smilesAtomOutputOrder")))]
atoms.sort()

return [atoms[i][1] for i in range(len(atoms))]

Expected behavior
Shuffling atom coordinates should not alter canonical SMILES
Screenshots
If applicable, add screenshots to help explain your problem.
Configuration (please complete the following information):

RDKit version: 2021.09.2
OS: Ubuntu 20.04.03 LTS
Python version (if relevant): 3.8.12
Are you using conda? no
If you are using conda, which channel did you install the rdkit from?
If you are not using conda: how did you install the RDKit? pypi

—
Reply to this email directly, view it on GitHub
https://github.com/rdkit/rdkit/issues/4830, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACLOFIFLEXG5RDLT5VLEL6LUTDPX3ANCNFSM5K3BEFGA
.
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 are subscribed to this thread.Message
ID: @.***>

I have a similar issue
I have downloaded the list of molecules from ChEMBL and I filtered the NaNs out of the default list of SMILEs and as the next step I would like to standardize the smiles.  Any help on how to get the output csv file out of this code by implementing the standardization would be highly appreciated. Here is my code
https://www.rdkit.org/
#https://github.com/rdkit/rdkit
from rdkit.Chem import AllChem
from rdkit import Chem
from rdkit.Chem import Descriptors
from rdkit.ML.Descriptors import MoleculeDescriptors
from rdkit.Chem.SaltRemover import SaltRemover
https://pandas.pydata.org
import pandas as pd
https://numpy.org/doc/stable/release.html
import numpy as np
#read drugs list
data = pd.read_csv("CHEMBL_SMILES.csv", sep=",")
print(len(data))
data.head(10)
df = data[data['SMILES'].notna()]
df.head()
def canonical_smiles(smiles):
def smiles_valid_and_standardise(smiles):
rm = SaltRemover()
df.loc["SMILES"] = df.loc[df.SMILES].apply(lambda x: smiles_valid_and_standardise(x))
mol = rm.StripMol(mol, dontRemoveEverything=True)
if len(Chem.MolToSmiles(mol).split('.')) > 1:
salt = Chem.MolToSmiles(mol)
frag_dict = {len(k): k for k in salt.split('.')}
max_frag = frag_dict[max(list(frag_dict.keys()))]
mol = Chem.MolFromSmiles(maVix_frag)
Error in this step
Canon_SMILES = canonical_smiles(df.SMILES)
print(Canon_SMILES)
KeyError: "None of [Index([  None],\n      dtype='object', length=8258)] are in the [index]"]
Put the smiles in the dataframe
df.loc["SMILES"] = Canon_SMILES
df.to_csv('chembl_canon_standardize_f.csv')

I'm closing this because it looks like it's not a bug. Please reopen if necessary.

@greglandrum so this can be closed, right? Since it's still marked as open


text:
"Connection reset by peer" on port 8080

Hi, Jochen and Kannan from neuland here!
We tried running aether locally and therefore created a local.yaml with our credentials. When starting the application with docker-compose everything looks fine and we get data on the std out of docker-compose, like so:

aether-1  | {"time":"2024-05-08T09:22:46.523103205Z","level":"INFO","msg":"server started","address":"127.0.0.1:8080"}
aether-1  | {"time":"2024-05-08T09:22:46.740398767Z","level":"DEBUG","msg":"CPU calculation","energy usage":0.00009117109104346985,"emissions":{"Value":0.034975965657006336,"Unit":"gCO2eq"}}

However, when we try to access the site that is supposed to run on port 8080, we get a "Connection reset by peer" error. We also tried using https, and added a /metrics to the address, but that didn't help either. To our understanding this should be the endpoint for Prometheus, so this would run into the same problem.
Are we missing anything?
Best regards!

Hi Jochen and Kannan!
First off, thank you for giving aether a try, and creating the issue!!
My initial thought is that you may be unable to access localhost since it's running in an docker container.
I think if you try changing the API address in you local config to 0.0.0.0, it should work.
api:
  address: 0.0.0.0

You're correct in the understanding of using the same Prometheus endpoint of /metrics, so it should work with 0.0.0.0:8080/metrics
I think you could also add network_mode: "host" to the docker-compose.yaml file and continue to use localhost.
Hope that works :crossed_fingers:

Hi Gabi!
Changing the address to 0.0.0.0 will now yield a 404 (which might be correct behaviour?), but accessing /metrics will now yield us the metrics page, so I believe this did the trick.
Thank you!

Fantastic! Yeah, at the moment that's the correct behavior. I've created an issue to update our docs to be more clear and hopefully help others avoid this in the future!

authors: gabibeyer pygospa

repo: re-cinq/aether


text:
Improve self destructive commands

I think it is better to remove setup and clean command from package.json after executing.

Coverage remained the same at 99.242% when pulling 09c3e852ad38bb62e3acfacec6bc9f6f46792be3 on gaoqiankun:improve-self-destructive-commands into 2d09df1d1a2aaca43023976816f9310836131a40 on react-boilerplate:dev.

@gaoqiankun I would rather see work on #760
Also please comment on why this PR in that issue.

pushing to land #760 in next release, closing due to inactivity...
@gaoqiankun thank you for contributing, please feel free to join the discussion on #760

authors: coveralls gaoqiankun gihrig justingreenberg

repo: react-boilerplate/react-boilerplate


text:
fix(.nginx.conf) moving root path to the main server block

With the addition of the 'Do not cache sw.js' block, the root path, that is in the 'Always serve index.html' block, should move to the main server block or the sw.js will not be found.

Coverage remained the same at 100.0% when pulling 83e596f80f7fde3fa72776ca37ae14f170ad8576 on Mensae:fix/nginx into 9129f21f2c4199a310b105173d45a0bf9475eb30 on react-boilerplate:dev.

LGTM, Thanks.

@gretzky  Need your review :)

Thanks @blling - just gonna update the branch to latest and then it should be good to go

Coverage remained the same at 100.0% when pulling b9229934b9d9f5ba3131d6ceb6e92eaf2f296a3f on Mensae:fix/nginx into f505acd077d654b04fdbcd43108ef3169ac9af17 on react-boilerplate:dev.

authors: Mensae blling coveralls gretzky