Split the populator image

This patch will split the populator image.
One image acts as a controller to the populator - 'populator-controller' and the actual populator action will be executed by the 'ovirt-populator' image.
This will allow a separation in logic, allowing to add more source providers images and use the same controller for all.
Signed-off-by: Liran Rotenberg<EMAIL_ADDRESS>

Building the ovirt-populator image works. Locally it also runs, but on my OCP it doesn't - exec /ovirt-populator: exec format error.
There are some bugs that seems to relate the issue I see https://github.com/golang/go/issues/53116 and https://github.com/golang/go/issues/53804 (Basing on https://github.com/golang/go/issues/53804#issuecomment-1182345944, it relates to CGO_ENABLED=0. There is also a kernel fix in v6.1 and above. But the images used to compile is using 5.14.0-162.6.1.el9_1.x86_64. Still, it does seem to work locally.

Building the ovirt-populator image works. Locally it also runs, but on my OCP it doesn't - exec /ovirt-populator: exec format error. There are some bugs that seems to relate the issue I see golang/go#53116 and golang/go#53804 (Basing on golang/go#53804 (comment), it relates to CGO_ENABLED=0. There is also a kernel fix in v6.1 and above. But the images used to compile is using 5.14.0-162.6.1.el9_1.x86_64. Still, it does seem to work locally.

works now (somehow, my guess it's either luck or changing it into cmd directory) :)

Right I forgot we have the group and kind
On Sunday, February 5, 2023, Liran Rotenberg @.***>
wrote:

@.**** commented on this pull request.
In cmd/populator-controller/populator-controller.go
https://github.com/kubev2v/forklift/pull/135#discussion_r1096643209:

flag.StringVar(&kubeconfig, "kubeconfig", "", "Path to a kubeconfig. Only required if out-of-cluster.")

}
flag.StringVar(&masterURL, "master", "", "The address of the Kubernetes API server. Overrides any value in kubeconfig. Only required if out-of-cluster.")
flag.StringVar(&imageName, "image-name", "", "Image to use for populating")
// Metrics args
flag.StringVar(&httpEndpoint, "http-endpoint", "", "The TCP network address where the HTTP server for diagnostics, including metrics and leader election health check, will listen (example: :8080). The default is empty string, which means the server is disabled.")
flag.StringVar(&metricsPath, "metrics-path", "/metrics", "The HTTP path where prometheus metrics will be exposed. Default is /metrics.")
// Other args
flag.StringVar(&namespace, "namespace", "konveyor-forklift", "Namespace to deploy controller")
flag.Parse()

var (

gk  = schema.GroupKind{Group: groupName, Kind: kind}

gvr = schema.GroupVersionResource{Group: groupName, Version: apiVersion, Resource: resource}

)
imageName = "quay.io/lrotenbe/ovirt-populator:test"

if it's in the CR, we can use the populator-controller image to take it in
provide it to the the library, without modifying the library further.
—
Reply to this email directly, view it on GitHub
https://github.com/kubev2v/forklift/pull/135#discussion_r1096643209, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAQKN4UGH5OTXYIXK7YMMVLWV5QEBANCNFSM6AAAAAAUMU4FG4
.
You are receiving this because you were mentioned.Message ID:
@.***>

Right I forgot we have the group and kind

if it's in the CR, we can use the populator-controller image to take it in provide it to the the library, without modifying the library further.

So, I think we don't really need to change a thing? once we have other kinds we may change the image based on that? or we should providing an image anyway in the CR?

@liranr23 you mean another provider type that uses volume-populator? if so I don't see why not to do it before - even if ovirt is the only provider, I'd still expect the image of the populator to be configurable (and propagated from the controller that takes the forklift or mtv image that is set in the operator)

@liranr23 you mean another provider type that uses volume-populator? if so I don't see why not to do it before - even if ovirt is the only provider, I'd still expect the image of the populator to be configurable (and propagated from the controller that takes the forklift or mtv image that is set in the operator)

benny and i discussed offline, we think a configmap might be a solution for this. i'm still bothered with how the controller will know which kind he will be looking for.

@liranr23 please check the failure in:
https://github.com/kubev2v/forklift/actions/runs/4117193517/jobs/7108193103


BUG: missing information in the file result_performance.csv downloaded for FragPipe__20240903_121541

Describe the bug
If I download the file result_performance.csv from the DDA module for the point FragPipe__20240903_121541, I only have the rows of the precursors with nr_observed = 6.
There should be all the rows (with nr_observed from 1 to 6).
I have not checked yet if the same thing happens with other points or modules.

There should be information in other columns. Specific ones get parsed out though at time of plotting.

Ok, had a look, what is the link to the file you used?

Not sure I understand what link you are talking about. I am talking of the intermediate table for the data point 7f1e8060ed9a177397cf192659fc1b49a94a7925


Dev Site : URL changes based on Updates to atsign.org content on pub.dev

Lead: @anthonyvprakash who is the lead here?

[x] Once the pub.dev changes are complete, make sure the URLs are right on the Dev site across everything under Docs
[x] Dependency on all documentation cards from the Dev Engg Sprint to be completed first before we update the URLs

Closing card as we have other cards to capture missing info.


FR: Support len for map type

len({1: 2, 3: 4}) got error:
 invalid argument for len (type map[string]interface {}) (1:1)
 | len({1: 2, 3: 4})

As per the spec, len returns length of array or string. Do you guys have any plan to enable len for map type?

Yes, it will be cool to have it on maps too.

Fixed.


Textures

Everything that needs to be textured/retextured is below.

[ ] Computer Retexture
[ ] Peripherals

[x] Fancy


Set dependency between docker containers

Description
Set the startup/shutdown order between the Inmanta server and the database in the docker-compose file.
Self Check:

[ ] Attached issue to pull request
[x] Changelog entry
[ ] Type annotations are present
[ ] Code is clear and sufficiently documented
[ ] No (preventable) type errors (check using make mypy or make mypy-diff)
[ ] Sufficient test cases (reproduces the bug/tests the requested feature)
[x] Correct, in line with design
[x] End user documentation is included or an issue is created for end-user documentation

Reviewer Checklist:

[ ] Sufficient test cases (reproduces the bug/tests the requested feature)
[ ] Code is clear and sufficiently documented
[ ] Correct, in line with design

Processing this pull request

Merged into branches master in 4de45a1016f2572dd82be8f24b67c8367e0f30aa

Processing #4875.

Processing #4874.


Many, many tests throwing errors on master.

I have a lot of tests failing on master.
There's 103 errors so I haven't waded through them all bit the majority are due to the method signatures changing in fileutils.rb from using options to _options but none of the subsequent references to options have changed to _options.
It appears to be related to this Rubocop commit: https://github.com/defunkt/fakefs/commit/a548517ad11a6c50653ce503954b73921c2a7597

Already fixed in #268, waiting for merging

Closing this - it's already fixed


Fixed event embeds are failing to delete

Jul 25 18:35:20.189 DEBUG failsafe::command: 'lfg.delete' handling command interaction
Jul 25 18:35:20.195 DEBUG failsafe::embed::channel: Applying event channel update: Delete { idx: 2 }
Jul 25 18:35:20.195 DEBUG failsafe::embed::channel: Applying event channel update: Delete { idx: 3 }
Jul 25 18:35:20.349 ERROR failsafe::embed::fixed: All (1) embed messages failed to delete for event dsc1
Jul 25 18:35:20.349 ERROR failsafe::embed::fixed: Err(Failed to delete message

Caused by:
    0: Cannot send an empty message
    1: Cannot send an empty message)

Haven't been able to reproduce this recently, and originally it had popped up without any changes to the fixed embed code. Maybe there was a regression on Discord's side that's been fixed?


feat(swagger): add examples to all api params

Hello, this is a bug, id is a path parameter, not a query
(and many more similar mistakes)

@pmstss what do you think?

@bararchy it's a valid complain

@davidbolvansky thank you! will be fixed soon


encoding/xml: add support for xml version 1.1

What version of Go are you using (go version)?
go 1.10.2
Does this issue reproduce with the latest release?
n/a
What operating system and processor architecture are you using (go env)?
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
There are any plans to add support for XML version 1.1 in the "encoding/xml" lib?
thanks!

What would be required to make this happen?

@summychou Thanks, noted, but please see https://golang.org/wiki/NoPlusOne .  Can you answer the question I asked above?

@ianlancetaylor https://www.w3.org/TR/xml11/#sec-xml11
changes in xml 1.1

@ianlancetaylor  Processing XML 1.1 documents with XML Schema 1.0 processors

Is there any alternative to parse a 1.1 XML document?

Haven't get a change to go through the XML 1.1 spec yet, but the seems to be mainly on extending further Unicode support.
"XML 1.1 improves on some of the short comings of XML 1.0, notably recognizing end of line. There currently exists a misalignment between what XML and Unicode defines as end of line, this affects particularly IBM machines, as well as systems communicating with them .
XML 1.1 also adds 2 new important characters NEL and a line separator. NEL 0x85 is used to mark the end of line and for completeness 0x2028 is used to mark the separation of line, this is extremely helpful in normalizing linefeed in text which plagues XML 1.0."
According to this post:
http://echmondprojects.com/general/tutorials/xml/xml_a/whats-in-xml-1-1/
More reading from the official XML spec:
https://www.w3.org/TR/xml11schema10/

使用的go 1.17 需要对jenkins的xml进行解析 but Jenkins xml version is 1.1  ？How to deal with?

不明白为什么提了问题你们给关了？倒是给个解决的方案啊？说是和这个重复，那这个也都几年了还是没进度！感觉go是只关心核心进展

不明白为什么提了问题你们给关了？倒是给个解决的方案啊？说是和这个重复，那这个也都几年了还是没进度！感觉go是只关心核心进展

@zhongsdjn This issue tracker is primarily in English.
This issue is not closed.  But as far as I know nobody is working on it.  Go is an open source project.  Would you like to send in patches for XML 1.1 support?  Thanks.

使用的go 1.17 需要对jenkins的xml进行解析 but Jenkins xml version is 1.1 ？How to deal with?
Can you show more detail of Jenkins' xml file as an example?

the error:
xml: unsupported version "1.1"; only version 1.0 is supported
but jenkins config file both xml 1.1
like flow:

<hudson.util.DescribableList>
<hudson.node__monitors.ArchitectureMonitor>
false
</hudson.node__monitors.ArchitectureMonitor>
<hudson.node__monitors.ClockMonitor>
false
</hudson.node__monitors.ClockMonitor>
<hudson.node__monitors.DiskSpaceMonitor>
false
1GB
</hudson.node__monitors.DiskSpaceMonitor>
<hudson.node__monitors.SwapSpaceMonitor>
false
</hudson.node__monitors.SwapSpaceMonitor>
<hudson.node__monitors.TemporarySpaceMonitor>
false
1GB
</hudson.node__monitors.TemporarySpaceMonitor>
<hudson.node__monitors.ResponseTimeMonitor>
false
</hudson.node__monitors.ResponseTimeMonitor>
</hudson.util.DescribableList>

https://github.com/jenkinsci/jenkins/pull/3185 for the record. If you are using some Golang-based tool to manipulate Jenkins XML configurations (which?), pending this fix I suppose it would suffice to start by just stripping out any version='1.1' or version="1.1" from the first line of its input (should be fine to emit nothing or version='1.0' in output), and documenting that the tool will break in the rare case that control characters are present in text managed by the config file.

Any update for  xml 1.1!

the error: xml: unsupported version "1.1"; only version 1.0 is supported
but jenkins config file both xml 1.1 like flow:  <hudson.util.DescribableList> <hudson.node__monitors.ArchitectureMonitor> false </hudson.node__monitors.ArchitectureMonitor> <hudson.node__monitors.ClockMonitor> false </hudson.node__monitors.ClockMonitor> <hudson.node__monitors.DiskSpaceMonitor> false 1GB </hudson.node__monitors.DiskSpaceMonitor> <hudson.node__monitors.SwapSpaceMonitor> false </hudson.node__monitors.SwapSpaceMonitor> <hudson.node__monitors.TemporarySpaceMonitor> false 1GB </hudson.node__monitors.TemporarySpaceMonitor> <hudson.node__monitors.ResponseTimeMonitor> false </hudson.node__monitors.ResponseTimeMonitor> </hudson.util.DescribableList>

I also had this problem.
My solution is as follows:

First replace version='1.1' with version='1.0'
After the operation, replace version='1.0' with 'verison=1.1'`

We need to support 1.1

Hi, this issue is opened from 2018 Any plan for xml 1.1 support ?

I'm not aware of anybody actively working on this.

Change https://go.dev/cl/452235 mentions this issue: encoding/xml: parser should not fail on XML version check in non-strict mode

This looks like a sensible compromise. If the user doesn't want strict behavior, they can optionally disable it.

Any update here?


Documentation for Header is broken

Documentation for Header is broken
There should be information pertaining to the header element on this page: http://ionicframework.com/docs/v2/api/components/toolbar/Header/
Currently there is nothing present.
Steps to reproduce:

Visit page above.

Which Ionic Version? 2.x

This issue was moved to driftyco/ionic-site#728

Hello, thanks for opening an issue with us! Since this was an issue with the documentation I have moved it to the ionic-site repo. Thanks for using Ionic!

Ah, makes sense :D Thank you, sir!


perf: cache topic

Description
Please explain the changes you've made
Now we don't call ensureTopic function unnecessarily , we cache it and continue if its called before
Issue reference
We strive to have all PR being opened based on an issue, where the problem or feature have been discussed prior to implementation.
Please reference the issue this PR will close: #2539
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list:

[x] Code compiles correctly
[] Created/updated tests
[ ] Extended the documentation / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]

@ItalyPaleAle , Does the structure I used now fine ? supporting cache invalidation

/ok-to-test

Thank you @sadath-12 !


COMMON: bump2version is deprecated

https://github.com/callowayproject/bump-my-version is the successor

I can have a look if you want.

https://github.com/c4urself/bump2version/pull/272


When deleting a local entity, remote version change causes endless loop of conflict resolution

Repro steps:

Delete a node (or other entities) locally.
From browser/computer (possibly with another user) make a change to that entity, causing a version bump.
Attempt to save your changed.

Actual behavior:

If you had other modifications, besides deletion, you will see endless loop of upload and then nodes requests to the server (and the UI will display loading).
otherwise, you will see an endless of loop of upload requests.

Expected behavior:

A conflict resolution screen is displayed
Local change, if selected, is saved

I have done a preliminary analysis of the issue. It seems like the client isn't asking the server for the deleted node as part of the node request, in order to detect the conflicts.
The reason it's not asking for is this line.
However, simply asking for deleted as well won't do the trick, because later when detecting conflicts here, it will fetch the entity from the coreGraph, but due to weird code here it will simply fetch the base entity, which will in turn resolve the conflicts easily without involving the user, and without even knowing it was deleted, so the end result is local changes are essentially discarded.
Seems like there needs to be a flow that's aware of locally deleted nodes and offers the resolve these conflicts properly.

Nice catch!

but due to weird code here

Yeah, that was a workaround for a bug in some versions of Chrome/Chromium on Linux. I believe it can be removed now since the underlying bug has been fixed in newer versions of Chrome by now (I assume?!).

Also, in my opinion, hasEntity is a little broken for locally deleted entities. It will return false even thought the graph does have the entity, in a sense.

I agree that in order to fix the reported problem, there must be done more than just removing the odd workaround. Maybe it will be necessary to store a visible=false version for deleted objects (instead of just setting them to undefined in the graph) in order to fix the issue. :thinking:

Yeah, that was a workaround for a bug in some versions of Chrome/Chromium on Linux. I believe it can be removed now since the underlying bug has been fixed in newer versions of Chrome by now (I assume?!).

yeah I agree - It's been a year since we needed to patch Chrome 58/59.. we can probably remove it.

Also, in my opinion, hasEntity is a little broken for locally deleted entities. It will return false even thought the graph does have the entity, in a sense.

This is the design of how it works.  hasEntity is supposed to return undefined if the entity has been deleted.
That said, the save.js code can be improved - it already checks the modified objects, and it should check the deleted objects too.

I also have this issue in version 2.12.2. I also saw in source codes that deleted objects are not checked, only modified. Please inform if something changes.


The scroll back to top button can be improved

I reckon the scroll back to top button can be customized to well fit the theme and make more eye catching, for example fixing fixing the color shade so that when hovered upon, it does not go dark and become less visible, making a circular icon button can also be a good option

I believe I can customize a new scroll back to top button, Can you please Assign this issue to me under the Hacktoberfest tag.

@jriyyya you are assigned


Add set and delete access

There is no mention about black in this projects readme only on https://github.com/fondberg/easee_hass#development. Ill add that to this project too and relint :)

Development
This project uses black for code formatting and flake8 for linting. Two errors should be ignored when running flake8 so run it with

flake8 --ignore=E501,E231 custom_components/

0.7.17 released


Feature request: view PDF inside ecode

Sorry but I don't want a PDF viewer inside ecode, I consider it out of the scope.

Sorry but I don't want a PDF viewer inside ecode, I consider it out of the scope.

Believe me or not, a PDF viewer inside a text editor is more common than you think. Except Electron based VSCode and friends, which got a PDF viewer for free, there are other text editors that do this:
https://github.com/adonais/skylark
https://texteditor.pro/

I absolutely believe you, I just don't think an editor should be a PDF reader. I do see the possible benefit on some cases, for example for Latex editing or something alike, but ads a very heavy dependency for very little gain. I think it makes more sense for specialized editors.

https://github.com/adonais/skylark

This is new to me. I don't know that SumatraPDF could be embedded into other applications!


Set IP address

I installed and ran per instructions. No problems there. However, When I ran the ./run-sygil-streamlit.sh script, the IP addresses assigned for browsing were totally random. I looked at the various build files associated with that script and have not been able to figure out how to assign the IP addresses.
As things stand, the Docker build is useless as there is no way to access it on my LAN.
Update: I checked the Docker documentation and setting up the network is fairly simple. However, which docker file needs modification so that all containers will use the same LAN subnet?

Turns out that the reported IP address is bogus. 'localhost' works okay.

The reported IP addresses are for an internal Docker network, which is why they don't work outside Docker. Glad you found localhost working 😄


Close connection

Let's say a client sends a bogus packet, or some error occurs, or the server wants to ban or rate-limit a client, would it be possible to add a way to close an endpoint? That is, cut the connection. The API could look like Network::close(Endpoint).
The NetEvent::Disconnected event would be sent to the server, and if a new connection attempt is done, the NetEvent::Connected would be sent again.

Hi @Uriopass,
I think that what you are searching is
Network::remove(ResourceId). In the case you have exposed, you could do something like network.remove(endpoint.resource_id()). Any endpoint can be used: endpoints that you have connected manually or endpoints comming from an accepted connection by a listener.

Isn't a resource for a server the thing returned by Network::listen?
If I just want to disconnect one client and not all clients connected to this resource, will this work?
So resourceId is actually the pair (socket, client)? Then what is endpoint for?

Suppose the following example (explained inline in the comments):
let (tcp_listener_id, addr) = network.listen(Transport::FramedTcp, "<IP_ADDRESS>:3000").unwrap();
let (udp_listener_id, addr) = network.listen(Transport::Udp, "<IP_ADDRESS>:3000").unwrap();

loop {
    match events.receive() {
        NetEvent::Connected(endpoint, listener_resource_id) => {
            // The listener idenfified with listener_resource_id has accepted a new connection.
            // Udp is not connection oriented so the Connected event is not generated. We can assume here:
            assert_eq!(tcp_listener_id, listener_resource_id);
            // You can remove the new conection using the resource id of the endpoint that represent it:
            network.remove(endpoint.resource_id());
            // You can remove the listener:
            network.remove(tcp_listener_id);
        }
        NetEvent::Message(endpoint, data) => {
             //Because UDP is not connection-oriented, the resource used internally is the same as the listener, so:
            if endpoint.resource_id() == upd_listener_id() {
                // This message is Udp
                // Note that if you remove like the tcp case: network.remove(endpoint.resource_id()),
                // the udp listener is removed.
            }
            // Another way to archieve this is checking the adapter of the resource:
            if endpoint.resource_id().adapter_id() == Transport::Udp.id() {
                // This message is Udp
            }
        }
    }
}

Answering your questions:

Isn't a resource for a server the thing returned by Network::listen?

yes

If I just want to disconnect one client and not all clients connected to this resource, will this work?

No, you need to disconnect each client based on the resource that comes with its endpoint.

So resourceId is actually the pair (socket, client)?

ResourceId = socket internal id + type(remote/local) + adapter id(or transport). The content is codified in 64bits, to easily be copied, hashed, etc..).

Then what is endpoint for?

Endpoint = Remote address + ResourceId. Because in some cases as UDP, the resource is shared among several remotes. Also, in most cases, you would want to identify the remote by the address.

I get it know! Thank you. I think my main mistake was thinking UDP was somehow connection oriented, but all the clients actually share the same resource.

Apolgoies for trying to revive this thread, I am stuck in the same situation for trying to disconnect clients (e.g. ban/kick clients for reasons) using the UDP connection. Of course I undertand that the UDP is connectionless, and using network.remove(endpoint.resource_id()) would terminate all clients connected via UDP. However, is it possible to close a specific UDP port the client is allocated (e.g. if the 'bad' client is allocated port 30000, then close that to disconnect them)? Sorry if this is the wrong place to ask, i try to avoid openeing a new issue

Hi, @tree786 do not worry about open/reopen issues. Your problem can help other users that have the same as you :)
When you listen from UDP. message-io do not save any information of any of the incoming messages (in contrast to TCP, which save that information). The endpoint you manage is created just when the message is received creating the illusion of having something "connected". Since there is no information inside message-io about the remote UDP endpoint, you can not filter/ban the connections.
This feature (ban a user port) needs to be added by yourself, which can be easily managed with a table, avoiding processing messages coming from the blacklist. Nevertheless, this kind of ban should be implemented better at a session-level over the transport and independently of it. This is because if you block the 30000 port, the banned app could be closed and a new app (that should not be banned) can reuse that port and will not be able to connect to your server.

Hi, Thank for advice ! Ok I see, yeah I think the only solution for UDP is like you mention, is have a list of blacklisted address (i.e. IP), then have a conditional statement (on server) which filter out the 'good' from 'bad' clients. And only send data to the 'good' client . Thank again for clarificition !


[retirement page] Pulling from two separate projects & subgraph index

Description
See discord thread here.
It was reported by a contrib that when you click on the 2nd retirement (54.62 NCT), then the next page shows the wrong retirement amount as 794.378 NCT.
https://www.klimadao.finance/retirements/0xb2b8c7ea4619327101e591828600f62616ad8e12
The retirement certificate shows the right amount though.

[cujo]

looks like this happened because there were only 794 project tokens left for the default project, so it pulled in the remainder from the second in the list. Both of them happened in the same transaction

interesting...the /2 retirement page exists (https://www.klimadao.finance/retirements/0xb2b8c7ea4619327101e591828600f62616ad8e12/2) but it does not have a date or pdf.
these two retirements appear separate but point to the same /3 retirement page`

[atmos]

indeed there seems to be a bug in how we render that list of All Retirements
its not linking to the correct index
And that /2 retirement page is indeed funky
So we made some wrong assumptions about what happens when a retirement pulls from two separate projects

[atmos]

@cujowolf so the subgraph is returning index '2' twice

{
      id: '16610969610x68e65cc375f10baf74ac41773658dd00b5de1eaa',
      pool: '0xd838290e877e0188a4a44700463419ed96c16107',
      beneficiaryAddress: '0xb2b8c7ea4619327101e591828600f62616ad8e12',
      index: '2',
      timestamp: '1661096961',
      retirementMessage: 'Completing our Pledge!',
      amount: '794.37810595804719612',
      offset: [Object]
    },
    {
      id: '16610969610x463de2a5c6e8bb0c87f4aa80a02689e6680f72c7',
      pool: '0xd838290e877e0188a4a44700463419ed96c16107',
      beneficiaryAddress: '0xb2b8c7ea4619327101e591828600f62616ad8e12',
      index: '2',
      timestamp: '1661096961',
      retirementMessage: 'Completing our Pledge!',
      amount: '54.62189404195280388',
      offset: [Object]
    }

[atmos]

indeed index 1 is missing

{
  "data": {
    "klimaRetires": [
      {
        "amount": "160",
        "token": "BCT",
        "index": "0"
      },
      {
        "amount": "54.62189404195280388",
        "token": "NCT",
        "index": "2"
      },
      {
        "amount": "794.37810595804719612",
        "token": "NCT",
        "index": "2"
      }
    ]
  }
}

so this explains why the page has no timestamp or certificate (this stuff depends on subgraph), but we are still able to get the retirement message and beneficiary name from the storage contract itself
https://klimadao.finance/retirements/0xb2b8c7ea4619327101e591828600f62616ad8e12/2
theres no fix for me there so im just gonna wait on subgraph fixes @jabby09

fixed in new subgraph


Fix archive_site_local, master_site_local, patch_site_local when multiple URLs are specified

Correctly add multiple URLs specified in archive_site_local, master_site_local, and patch_site_local when a tag is used.
Closes: https://trac.macports.org/ticket/57718

I'm not sure these were ever intended to support more than one URL; after all the name contains "site" not "sites". But if it's this easy to support it, why not I suppose.
Some test cases would be very useful to encapsulate what the correct behaviour is in each of the many combinations of master_sites, master_site_local, single/multiple URLs in each, single/multiple/no tags used, etc.

This does add the additional constraint that *_SITE_LOCAL must be a valid Tcl list, but it should be pretty uncommon for that to be a problem.


Typescript definition files seems to be wrong

node -v
v16.13.0
npm -v
8.1.0

Both of applyLiveQueryJSONDiffPatchGenerator.d.ts & liveQueryJSONDiffPatchGenerator.d.ts are referencing : import("../../graphql-live-query/src") and it's causing compilation issue on my side (using tsc).
When I manually patch them to import("../graphql-live-query") everything is working fine.
I've also changed import("../../graphql-live-query-patch/src/ExecutionPatchResult") to import("../graphql-live-query-patch/ExecutionPatchResult") in liveQueryJSONDiffPatchGenerator.d.ts.
Is there something wrong on my side?

Are you using the latest version of the packages? Could you share a reproduction on code sandbox or as a GitHub repository?

Gonna close this due to missing feedback.


Non-linear release histories not supported

I may have missed a flag or something, but this doesn't appear to support release histories that include multiple maintained release branches.
As an example, see the changelog generated for github.com/pilosa/pilosa: https://gist.github.com/codysoyland/703101d5be09fc811cb3f7a6ab8d1e8e
As you can see, we made releases in the following order:

0.2.4
0.3.1
0.2.5
0.3.2

However, the changelog assumes that each of these releases was an evolution from the previous by order of date. But we are actually maintaining two release branches, a 0.2.x branch and a 0.3.x branch.
In other words, the previous version that is used to generate the change list and diff link should not be the previous tag by date, but the most recent tagged ancestor in git history.

Totally 👍 for this.
Maybe also related to https://github.com/skywinder/github-changelog-generator/issues/256
Supporting two or more branches is common, bugfixes go to the lowest supported branch and then merged in more recent branches, while latest branch keeps getting PR merged in the meantime.
This bug mixes the result that therefore must be manually cleared 😞

#619 fixes this for PR merge detection but doesn't fix it for the generated diff links. Something like https://github.com/skywinder/github-changelog-generator/pull/619#issuecomment-370598725 would be needed.

It is unclear to me what the desired result is. Should new changes in the 0.2.x series even appear in the 0.3.x changelog? If not, the --release-branch option introduced in #305 should help.


Add MaxResponseSizeMB to runtime config.

Why make this change?
This change adds in a new property to the host parameter of runtime config called MaxResponseSizeMB. This property will allow users to configure the amount of data that their host platform's memory can handle when streaming data from the underlying datasources.
What is this change?
This change adds the maxresponseSizeMB property to the runtime config. In addition, it adds an accessor for that property which would be needed to implement the actual logic of streaming.
How was this tested?
Unit tests are added.

/azp run

When i have a dab-config.json where i set "max-response-size-mb": null and then run DAB's CLI -> dab add Book --config "path/to/config.json" --source books --permissions "anonymous:create,read,update,delete" --graphql "book:books"
The field "max-response-size-mb" disappears from my config. The use case is this: I am explicitly setting the property and value in my config. I am saying: "i want no limit to max response size, do NOT give me DAB's default value as that could change in the future. My config is explicitly telling dab what i want and the CLI shouldn't remove my explicitly defined field."

Added similar flow to pagination options. Added all the things discussed in design doc.

/azp run

/azp run

/azp run


Store updates client side in a pending state

what
To reduce network overhead, we might introduce a "pending" state on the client side: So updates are stored locally, but in a pending state first. The server then only needs to send back a "success" or "rejected" message for the update. As soon as the client receives the confirmation, it will store the value locally and trigger the listeners. We might introduce a unique id for every update, so we can send update confirmations per update.
why
Currently the client sends an update and the server needs to send the update back to confirm the changes. This is unnecessary network overhead, as the client already has the updated data.
see #21

The new API (#79) changes a lot of this, so it should be addressed with the update.


Update RsaCtfTool.py: conspicuousness check

I forgot to add the code in the main script.
Now it should work.

can you use a context for key_data = open(args.key, "rb").read() in order to close the file descriptor ?


Error if a color scale has only one value

If the range and domain attributes of a chart have only one value, the alt.Chart.transformed_data method returns an error which originates from VegaFusion. If I add a second value, it works. Seems like the parsing logic changes if it's one value?
import altair as alt
import pandas as pd

df = pd.DataFrame([[1, "A"]], columns=["x", "y"])

chart = (
    alt.Chart(df)
    .mark_bar()
    .encode(
        x="x",
        y="y",
        color=alt.Color("y", scale=alt.Scale(range=["#0000FF"], domain=["A"])),
    )
)
chart.transformed_data()

thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: ParseError("Invalid character: #", ErrorContext { contexts: ["Failed to parse token at position 0 in expression: #0000FF"] })', vegafusion-core/src/planning/stitch.rs:27:10

Replacing "#0000FF" above with "blue" gives:
thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: InternalError("Failed to resolve variable Variable { name: \"blue\", namespace: Signal } used in scope []", ErrorContext { contexts: [] })', vegafusion-core/src/planning/stitch.rs:27:10

The following works:
chart = (
    alt.Chart(df)
    .mark_bar()
    .encode(
        x="x",
        y="y",
        color=alt.Color("y", scale=alt.Scale(range=["#0000FF", "white"], domain=["A", "B"])),
    )
)
chart.transformed_data()

I noticed this in an application where we generate the alt.Scale definition based on the distinct values in a column.
This is on Altair: 5.1.0 and VegaFusion: 1.4.0.

Thanks for the report. Yeah, something weird is going on here, I'll need to look at the Vega expressions that Vega-Lite is producing.


Find expenses in brothels

Brothels will usually print receipts using companies with names and main activities more "morally acceptable", e.g. a restaurant. If we can gather a list of CNPJ's from the major brothels in Brazilian capitals, this could generate a very interesting report and news coverage.
Original idea by Pedro Vilanova.

I think we might gather great data with something as simples as a Google Form and a social media campaign (cc @tatianasb)

For Rio de Janeiro's data you can export Bitchmaps' KML.

Great data @camilagss. I think if we compare the time of spend with your presence on SESSION/CPI with that we can find "Strange Things".

What data does the receipts offer? @camilagss 's KML is great, but do most receipts have addresses, so we can geocode and match? How can I find some sample receipts?

@rafaelalmeida Run python src/fetch_datasets.py and you'll get a dataset with latitude/longitude of all companies in the receipts will be downloaded. It's data/2016-09-03-companies.xz.
https://github.com/datasciencebr/serenata-de-amor/pull/19

Politicians usually use the home delivery service and pay in cash for this kind of service.
Or get someone else to pay for them, which is more common.
We should focus on what is left out of the auditing or focus on what is being wrongly declared?

Another source could be the
http://www.wikisexguide.com/
For example:
http://www.wikisexguide.com/wiki/São_Paulo

If I have time I will think how to create a webscraper for this website, they have the address of many places, we can check possibles "fake companies names", looking the address.

Hey Guys. I think I can do a CSV with the http://www.wikisexguide.com/ containing the Name, Category, Localization, and Phone.  I will try to open a request Pull in some days.

Hi Guys.
I realized that his website just has information's mainly for São Paulo and Rio and no have too many places.
Anyway... I get all the data available for São Paulo and Rio and I made a simple crawler.
This is the my crawler https://github.com/guilhermeprokisch/wikisexspider
and here is the output in CSV.
https://github.com/guilhermeprokisch/wikisexspider/blob/master/wikisexguide/output.csv

Hi @guilhermeprokisch! Many thanks for that.
Even with data restricted to São Paulo and Rio de Janeiro I think this is useful.
I strongly encourage you to adapt that and send a PR to our /src. By adapting I mean:

Make sure scrapy is installed within Serenata Conda environment
Add a reference to the script/module in CONTRIBUTING.md
Add a date prefix and compact the .csv output (eg. 2016-11-03-cat-houses.xz)

One doubt: I see you restricted the cities to São Paulo and Rio de Janeiro (as you said before, the main cities in this website database). Does it worth it to include more cities, even if we don't have a lot of results from them?
I'd be happy to help you in any of these issues, pairing, discussing on Telegram (same username as in here) etc. What do you think about it?

Hi @cuducos
I create this temporary repository
https://github.com/guilhermeprokisch/congress_cats_distance

Include the 2016-09-03-companies to run the measure.py

You can take a look and tell me how to organize this in Serenata.

I found some funny results: Look the here

About your doubt:  The I need to take a look the website to check if others cities also have informations.

Sure thing, @guilhermeprokisch!
I have already gone through your code, it looks pretty good.
Your scrapy module could be a module inside our /src directory and your .ipynb would go to /develop — does that make sense? You can fork and clone this repo, move your code to these places, document the /src into CONTRIBUTING.md, generates the compressed CSV (.xz) according to the naming recommendations etc.
We can do it in pair programming or you can send a PR and in the code review cycles I help you putting everything in the right place. How does it work better for you?

Closing this: @guilhermeprokisch made a great contribution on #117 and we're refactoring it at #123 — further discussion is welcomed there.


[browser] Fix native scroll detection

Simple fix for #258

Great, thanks!

@oliviertassinari Just a heads up, this fix MAY have introduced a noticeable delay in the swipe functionality on mobile devices. I haven't tested builds comparing both, but intend to, and will let you know if this was the cause...

Based on my non-scientific tests, there is a perception that version 0.12.2 is a smoother swipe operation than version 0.12.3.
I dont have the capacity at this moment to record a test of both and overlay them to tell the difference...

Let us know if you find something. Maybe the performance devtools of your browser could help. I haven't notice that delay yet.

Does this require a 0.12.3 release of react-swipeable-views-native to have this fix?

@AlanFoster No, this change isn't impacting react-swipeable-views-native.


Iterate over keys on object

Is there a way to iterate over all the keys and values in the object?

Closing this as a duplicate of #105


Docker build not working

Apparently due to some debacle, the Docker setup isn't working.  The python installation route appears to work fine.  Hope to fix the Docker part soon

Somewhere along the way of taking this project public, I apparently had some trouble with git, and it wiped out changes I had made to things like requirements.txt, docker-build.yml, etc.  Oh, and it killed my code documentation as well.  So I've iteratively fixed all that this morning, and the instructions should lead a builder to success.


Generalize the return type of query functions in MapperUtils helper methods

We currently declare those as D extends Collection<R>, but it would be nice to also be able to return any type of container (e.g. Flux<R>, Stream<R>, etc.). This would be better implemented with higher kinded types (e.g. in Scala), but we don't have that luxury in Java, so this will break the relationship between the container and its generic type, something to think about.

Closing as this issue is now irrelevant since the work is now focused on native reactive support i.e. we always work with Publisher<R>


Improve complain checker in verbose mode

This fixes #2004

This is just the first step: add the extra check. A number of checks will fail (i.e. the Array.new spec mentioned in the other case). The Regexp.new check passes.
This should be put on hold until #2006 is merged.

  it "prints the message when VERBOSE is false" do
    -> { Warning.warn("foo") }.should complain("foo")
  end

  it "prints the message when VERBOSE is nil" do
    -> { Warning.warn("foo") }.should complain("foo", verbose: nil)
  end

  it "prints the message when VERBOSE is true" do
    -> { Warning.warn("foo") }.should complain("foo", verbose: true)
  end

So I guess this is not how the specs are supposed to be interpreted.
New plan: review the failed specs, manually check every offence to see the behaviour in MRI, update our behaviour if required, throw away this change in the specs.

I'm closing this one, since this is simply not how the specs are supposed to work.


Release arrow-rs / parquet major version 54.0.0 (December 2024)

Is your feature request related to a problem or challenge? Please describe what you are trying to do.
Previous releases

https://github.com/apache/arrow-rs/issues/6341
https://github.com/apache/arrow-rs/issues/6597

Our release schedule is here  https://github.com/apache/arrow-rs?tab=readme-ov-file#release-versioning-and-schedule
Describe the solution you'd like
Checklist:

[ ] Release notes and bump version: https://github.com/apache/arrow-rs/pull/6894
[ ] Vote thread: https://lists.apache.org/thread/yc9r2vpz1s1cdwzbdkbvy5ogg60ydxwg
[ ] Update main crate docs with next quarter release schedules
[ ] File follow on tickets:

Describe alternatives you've considered
According to the release schedule, the next release should be major 54.0.0 (including API changes) released early December 2024
Additional context
Suggested content:
TBD

I plan to make a RC for this sometime next week, so eta for a release to crates.io would be Dec 16 or so

Hi @alamb. Is the plan still to release this week?

I filed a ticket to track the idea of another release from the 53.x line

https://github.com/apache/arrow-rs/issues/6887

I think we are in good shape now and I plan to create the 54.0.0 release candidate tomorrow morning (US East Coast Time)

The release is available here:
https://dist.apache.org/repos/dist/release/arrow/arrow-rs-54.0.0
It has also been uploaded to crates.io
https://crates.io/crates/arrow/54.0.0


Tweak odd cell count grids

With the addition of snap to grid, we wish the snap to grid button to always align the object to the visible grid.  In the case that the grid has an odd cell count, the grid realigns to center itself about the origin.  This will currently result in a mismatch between where the object snaps to and the visual grid.  After some discussion and considering alternatives (disallow odd grid cell count, making snap to grid align to the odd cell count grid), it seems the most desired/valuable solution to this scenario is that grids with odd cell counts should still intersect the origin as does a grid with an even cell count, but an additional row and column should be appended on an arbitrary side (likely +x, +y), rather than the whole grid shifting to make itself even about the origin on all sides.

Issue resolved in ign-rendering#71


[Feat]: Add Social Sharing Links

Description of PR
Social sharing links added on Maps for Facebook, Email, Whatsapp, Twitter.
Relevant Issues
Fixes #2403

Recommit

I nave recommitted code with some tweaks. CI Console is showing some permission errors.

On line 347 of src/components/MapExplorer.js there is "CampersTribe - World is yours to explore" why was this added?

On line 347 of src/components/MapExplorer.js there is "CampersTribe - World is yours to explore" why was this added?

PR updated with fix.

Doesn't go with the design of the rest of the website and looks out of place


Changed numpy requirements to >=1.16.4

PR as requested in issue #519 by @williamFalcon

already implemented in #500

@cedias thanks for the fix! we merged that fix in #500


Clear up confusing API documentation

Summary

This page is now out of date: https://ranchermanager.docs.rancher.com/reference-guides/about-the-api
It refers to "The API", but the official API is now: https://ranchermanager.docs.rancher.com/v2.8/api/quickstart
I believe the best option would be to move the first link into a secondary section of second link, where it's referred to as the previous api. Or something along those lines.

@cbron Some of the content in our docs points to pages describing how token generation works in the previous API. For example, on https://ranchermanager.docs.rancher.com/getting-started/installation-and-upgrade/installation-references/feature-flags:

token-hashing: Enables token hashing. Once enabled, existing tokens will be hashed and all new tokens will be hashed automatically with the SHA256 algorithm. Once a token is hashed it can't be undone. This flag can't be disabled after its enabled. See API Tokens for more information.

Does the content on API Tokens still apply to RK-API?


[SPARK-29528][BUILD][test-maven] Upgrade scala-maven-plugin to 4.2.4 for Scala 2.13.1

What changes were proposed in this pull request?
This PR upgrades scala-maven-plugin to 4.2.4 for Scala 2.13.1.
Why are the changes needed?
Scala 2.13.1 seems to break the binary compatibility.
We need to upgrade scala-maven-plugin to bring the the following fixes for the latest Scala 2.13.1.

https://github.com/davidB/scala-maven-plugin/issues/363
https://github.com/sbt/zinc/issues/698

Does this PR introduce any user-facing change?
No.
How was this patch tested?
For now, we don't support Scala-2.13. This PR at least need to pass the existing Jenkins with Maven to prepare for Scala-2.13.

Test build #112351 has started for PR 26185 at commit 807bcde.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/17330/
Test PASSed.

Retest this please.

Test build #112352 has started for PR 26185 at commit 807bcde.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/17331/
Test PASSed.

Test build #112351 has finished for PR 26185 at commit 807bcde.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/112351/
Test PASSed.

Test build #112352 has finished for PR 26185 at commit 807bcde.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/112352/
Test PASSed.

Merged to master.

Thank you for review and merging, @HyukjinKwon !

Ah .. sorry @dongjoon-hyun, this seems causing the build failure on Windows (https://github.com/apache/spark/pull/26278). Let me revert this one for preview, and then get this in after the preview just to make sure all tests pass.

No problem~ Thanks!

I made a new attempt with 4.3.0.

https://github.com/apache/spark/pull/26457


[RFC] Deprecate the _epoch_end hooks

We are auditing the Lightning components and APIs to assess opportunities for improvements:
https://github.com/PyTorchLightning/pytorch-lightning/issues/7740
https://docs.google.com/document/d/1xHU7-iQSpp9KJTjI3As2EM0mfNHHr37WZYpDpwLkivA/edit#
Lightning has had some recent issues filed around these hooks:

training_epoch_end
validation_epoch_end
test_epoch_end
predict_epoch_end

Examples:

https://github.com/PyTorchLightning/pytorch-lightning/issues/8603
https://github.com/PyTorchLightning/pytorch-lightning/issues/8657
https://github.com/PyTorchLightning/pytorch-lightning/issues/8670
https://github.com/PyTorchLightning/pytorch-lightning/issues/8479

These hooks exist in order to accumulate the step-level outputs during the epoch for post-processing at the end of the epoch. However, we do not need these to be on the core LightningModule interface. Users can easily track outputs directly inside their implemented modules
Asking users to do this tracking offers major benefits:

We avoid API confusion: for instance, when should users implement something in training_epoch_end vs on_train_epoch_end ? this can improve the onboarding experience (one less class of hooks to learn about, only 1 way to do things).
This can also improve performance: if users implement something in training_epoch_end and don't use outputs, the trainer needlessly accumulates results, which wastes memory and risks OOMing. This is slowdown is not clearly visible to the user either, unless training completely fails, at which point this is a bad user experience.
Reduced API surface area for the trainer reduces the risk of bugs like this. These bugs disproportionately hurt user trust because the control flow isn't visible to end users. Going the other way, removing this class of bugs has a disproportionate benefit to user trust.
The current contract makes the trainer responsible for stewardship of data it doesn't directly use. Removing this support clarifies responsbilities and simplifies the loop internals.
There's less "framework magic" at play, which means more readable user code because this tracking is explicit.
Because the tracking is explicit, the responsibility of testing also falls to users, and in general we must encourage users to be able to test their code, and that the framework remains easily testable.

Cons:

(marginally) more boilerplate code in LightningModules. For instance, users would need to pay attention to resetting the accumulated outputs (unless they explicitly want to accumulate results across epochs).

Proposal

Deprecate training_epoch_end, validation_epoch_end, andtest_epoch_end in v1.5
Remove these hooks entirely, and their corresponding calls in the loops in v1.7

This is how easily users can implement this in their LightningModule with the existing hooks:
class MyModel(LightningModule):
    def __init__(self):
        self._train_outputs = []  # <----- New

    def training_step(self, *args, **kwargs):
        ...
        output = ...
        self._train_outputs.append(output)  # <----- New
        return output

    def on_train_epoch_end(self) -> None:
        # process self._train_outputs
        self._train_outputs = [] # <----- New

so we're talking about 3 lines of code here per train/val/test/predict. I argue this is so minimal compared to the amount of logic that usually goes into post-processing the outputs anyways.
@PyTorchLightning/core-contributors
Originally posted by @ananthsub in https://github.com/PyTorchLightning/pytorch-lightning/discussions/8690

one thing that will emerge is the hook call order between callbacks and the lightning module. logging something in the module's on_train_epoch_end  needs to happen first for it to be used in the callback's on_train_epoch_end hook. this would be a change compared to today's behavior. this is required for items like logging a value at the end of the epoch in the module, and using that key/value as a monitor for callbacks like model checkpointing or early stopping.
so this will be related to https://github.com/PyTorchLightning/pytorch-lightning/issues/8506

Even though I agree with your arguments, people just love "framework magic". Removing this can make sense engineering-wise and design-wise but it can break user trust.

This is how easily users can implement this in their LightningModule with the existing hooks:

This does look simple but does not consider the cases where multiple optimizers are available. Basically, all the code we would remove would need to be implemented by the users who need it, depending on how complex is their training step.
If we were in a 0.x version I'd entirely agree with you, but we have to consider how used these hooks are and the degree of headaches that this change might impose on users

Have you considered making output aggregation opt-in? Requiring a LightningModule flag (similar to automatic_optimization).
If outputs=True, then the use of training_epoch_end is the same as before. If outputs=False, then using this hook is a way of dealing with the callback-model order.

This does look simple but does not consider the cases where multiple optimizers are available. Basically, all the code we would remove would need to be implemented by the users who need it, depending on how complex is their training step.

I think that's also the point. If we want to support more flavors of training steps, the logic for handling these outputs in the framework gets more and more complex, when it could sit locally in the user's training step.
tracking the outputs per optimizer idx and dataloader idx in automatic optimization also shouldn't be significantly more work given these are accessible from the training step

API confusion aside, is the memory problem really an issue? I thought we are not tracking outputs if the hook is not overridden. In that sense, we already have the opt-in choice. This is the part where I don't get the full argument for removing it.
Regardless, I believe it would be interesting to see a lightning module rnn manual-implementation without the built-in TBTT. If we have that, we can examine the amount of boilerplate required and get a better picture of what impact this deprecation has.  Perhaps I could help here. I could try to contribute an example here.

API confusion aside, is the memory problem really an issue? I thought we are not tracking outputs if the hook is not overridden. In that sense, we already have the opt-in choice. This is the part where I don't get the full argument for removing it.

@awaelchi The memory issue is the biggest risk. The current hook order makes it very dangerous:

module.training_epoch_end
callback.on_train_epoch_end
module.on_train_epoch_end

if the user needs to log a value that's used in the callback's on train epoch end, then they currently are forced to do so in training_epoch_end (assuming they can't use training_step with self.log + on_epoch=True). and right away this incurs a major  performance hit (at best) or training failure (because of OOMs)
I believe your second comment is meant for https://github.com/PyTorchLightning/pytorch-lightning/issues/8732

if the user needs to log a value that's used in the callback's on train epoch end, then they currently are forced to do so in training_epoch_end

After the logger connector re-design, if you have 2 callbacks [A, B] and B reads a value off callback_metrics logged in A, it works even if they both do it on_train_epoch_end. This is because the callback_metrics get updated dynamically:
https://github.com/PyTorchLightning/pytorch-lightning/blob/69f287eb85c36412d5d4d6541bc25f6a75a977ea/pytorch_lightning/trainer/connectors/logger_connector/logger_connector.py#L297
So technically you are not forced to implement training_epoch_end if your callbacks have a proper order

Would this affect logging of torch_metrics, i.e., automatically calling metric.compute() at the end of each epoch?

@carmocca the scenario I imagine is the LightningModule logs value that's required for callbacks [A, B] to process in on_train_epoch_end, not callbacks themselves logging metrics themselves for use in other callbacks. Though it's nice that the new logging supports this, I'm not sure users should need to rely on the order of callback execution

What is the status of this issue? I saw it was added to a sprint in September

Another issue from transforming the return data from steps in a way users don't expect: https://github.com/PyTorchLightning/pytorch-lightning/issues/9968

Now that Lightning supports infinite training, these hooks introduce greater risks of OOMs: #11554


CSS updates/Modal Updates & click function for crypto

Updated Modal class to use a named ID instead of
numeric, to aid in preventing repeated instances
of a dialog box from being opened.
Updated CSS to support system based light/dark
mode in the modals, as well as the extension
window itself.
Added a click to copy function on the crypto
addresses
A few formatting updates, imposed by VS Code :)

Seems you were commits ahead of me :) lol


Is this action available? Can not find it in github marketplace

Is this action available? Can not find it in github marketplace

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

ID: 31f48a84-dcf9-e852-3f3c-703382971875
Version Independent ID: ffe51d31-19c8-f4c3-0d31-dc154e414a59
Content: Use variable substitution with GitHub Actions for Azure
Content Source: articles/github/github-variable-substitution.md
Service: azure
GitHub Login: @juliakm
Microsoft Alias: jukullam

Unfortunately, there's no alternative action currently. I'll work on retiring the article.


Anchor Ruby version, remove pre-generated blog

This PR anchors the Ruby version to the same one used by ombulabs.com, updates the Sitemap generator to work when running from the main site repository, and also removes the pre-generated blog pages for Heroku to generate them.

@etagwerker this PR is a companion to https://github.com/ombulabs/ombulabs.com/pull/105. The _site gets generated on deploy with a hook from the assets precompilation task.
Deploy log for blog regeneration: https://gist.github.com/mauro-oto/7aa0f3aeed6801ce58d5b8f49489b77f

@etagwerker just updated this PR. I think we could use staging to test that it works as expected.

This https://github.com/ombulabs/ombulabs.com/pull/105 should be deployed to staging to check that the ombulabs.com project can regenerate the blog on deploy, that PR has the blog gem pointing to this branch.


split standard and third-party packages imports

Can you add description and issue number too for PR

There seems a problem with Travis

Description
format imports packages
import (
  "a/b"
  "fmt"
  "github.com/kasvith/kache/c"
)

to
import (
  "fmt"

  "a/b"

  "github.com/kasvith/kache/c"
)

add make fmt to format code
add cmd/check_fmt.sh and cmd/check_imports.sh to ci

No can you edit the description on the top :)
Would be a help

thanks...is this problem with Travis arise because of godep ? I saw @BigJk had the same problem

there is no goimports command and i install it and i fix it.

thanks @Chyroc


Avoid using parallel_gpu_execute.sh on macos.

Test failure is a known flaky test
bazel_pip/tensorflow/python:input_test
Jenkins, test this please.


GKE Cluster Options that require api endpoints

This is a list of GKE options that we do not currently implement (at the cluster level).  These are those options that require a special endpoint to be created so that the appropriate options can be displayed to the user on the UI.

additional zones
network
project access
maximum number of nodes per pool

Hey @nathan-jenan-rancher,
Does the following error message, "GCE metadata" instance / zone "not defined", have any connection with this? At cluster level -> storage -> persistent volume
Unfortunately, I do not understand how to include the metadata (https://cloud.google.com/compute/docs/storing-retrieving-metadata#default).
Is there a documentation on how to integrate the gce persistent disk as volume over the Kubernetes interface?

The feature is validated on Rancher: master 2/15
The following aresa are tested to make sure they are set and show properly on both Rancher and Google Could:

additional zones
network
maximum number of nodes per pool

The bugs found during the validation are tracked by separate issues:

https://github.com/rancher/rancher/issues/18069

@fyery-chen  Could you show me where to check the project access on Google Cloud?
This is the UI in Rancher:

@jiaqiluo
First, you should find the instance group showing in the node pool.
Then, you can access the instance group to check out the instances.
Last, selecting an instance and checkout the details of it, you can see that

Met this issue while validating the project access feature
https://github.com/rancher/rancher/issues/18226

The bug #18226 is fixed and validated on Rancher: master 2/20


Some suggestion and known bugs

Memory leaks on free_texture
My valgrind detected memory leaks on rtnvg__deleteTexture
    if (rt->textures[i].id == id) {
      if (rt->textures[i].tex != 0 &&
          (rt->textures[i].flags & NVG_IMAGE_NODELETE) == 0) {
        free(rt->textures[i].data);
        // glDeleteTextures(1, &rt->textures[i].tex);
      }
}

The tex is always be inited in 0
It will cause memory leaks
It should be
    if (rt->textures[i].id == id) {
      if ((rt->textures[i].flags & NVG_IMAGE_NODELETE) == 0) {
        free(rt->textures[i].data);
        // glDeleteTextures(1, &rt->textures[i].tex);
      }
}

It could not be compiled with newest nanort
Current version of nanovg could not be compiled in C++17
Because std::unary_function is removed in C++17
Remove opengl shader rtnvg__renderCreate beacuse it was useless
on newest nanovg,rtnvg__renderTriangles has one extra param fringe
It shoud be
static void rtnvg__renderTriangles(void *uptr, NVGpaint *paint,
                                   NVGcompositeOperationState compositeOperation,
                                   NVGscissor *scissor, const NVGvertex *verts,
                                   int nverts,float fringe) {
  // printf("renderTriangles\n");
  RTNVGcontext *rt = (RTNVGcontext *)uptr;
  RTNVGcall *call = rtnvg__allocCall(rt);
	@@ -2367,7 +2194,7 @@ static void rtnvg__renderTriangles(void *uptr, NVGpaint *paint,
  if (call->uniformOffset == -1)
    goto error;
  frag = nvg__fragUniformPtr(rt, call->uniformOffset);
  rtnvg__convertPaint(rt, frag, paint, scissor, 1.0f, fringe, -1.0f);
  frag->type = NSVG_SHADER_IMG;
  //.....

Finish AA implement
Add a method to resize framebuffer
like nvgResizeFrameBufferRT is a good choice

Could you send PR?
For the speed, its a software raytracing so slow and no room for the optimization.

Yes,I have fix memory leaks on my repo,but i didnot known how to port it to newest nanort


feat(fmt): disable line config

Motivation

close #3572
Solution

Add disable-line inline config item.
@mds1 could you pls open a separate issue for parsing inline config items within comment content? feel like we need to discuss pros & cons there

Thank you @rkrasiuk!
Here's that issue: https://github.com/foundry-rs/foundry/issues/3594


Delete servlet: fix nullpointer

parsing and input checking not sufficient at the moment.
Malformed messages may lead to nullpointer.

fixed


Log Rotation not happening on NAS

Hi,
I have set the log location to be my NAS(Network Attached Storage) directory. Now when the log rotation triggers (I have set the trigger $D0) the previous file disappears and the new file gets created.
There is no history of log files available. Below is my config values -
          size: 100 * 1024 * 1024,
          date: '$D0',
          count: 10

Please help!!

Can you give more information what operating system you're using and if this happens if you don't log to the NAS?
Also, to clarify you only ever have one log file, when the rotation triggers the previous file is deleted and a new one is created?

Rotation works fine when I log to my project directory, but when I log to NAS, previous log files starts disappearing.
Yes I only have only one log file at any given time, when the rotation triggers the previous file is deleted and a new one is created
I am running this on Windows. My Elixir application is running as a windows service.
Thanks
Nitin

What happens if you disable log rotation (or I guess leave it as is) and rotate the file yourself by renaming the active log file?

Yes if I manually rename the file then it stays there

are you using the latest release of lager? I merged some windows rotation stuff recently. I don't have access to a windows machine with NAS, so I'm a bit limited in how I can debug this.

Thanks..upgrading lager version helped

Thanks for letting us know. Glad it worked out.


Use SVCAT_EXPERIMENTAL env var to feature-gate experimental features in svcat

We discussed in the SIG meeting today (9/17) that it might be helpful to gate new features in svcat to avoid making backwards-incompatible changes while iterating on new functionality.
This would be fairly simple, surround your new functionality with a check for the value of the SVCAT_EXPERIMENTAL environment variable, and only execute the new path if it's set to true. Once we've got the functionality we want, we would remove the variable check and it would get executed normally.
Thoughts?

I like it! That will be lightweight for people developing features for svcat, while still protecting us once we hit 1.0 and need to merge PRs behind a feature flag.
By the way, this is a related piece of code that I think people working on feature gated functionality in service catalog should be aware of:
https://github.com/kubernetes-incubator/service-catalog/blob/42bf23626c501f92864f166d4a6ff4eed0b2e94f/pkg/svcat/service-catalog/broker.go#L73-L86
I had to do that for namespaced service brokers, so that svcat didn't blow up when it tried to talk to a cluster that has that feature disabled. We may need to use functionality similar to that if the functionality we are adding to the cli is feature gated on the server side.

@MHBauer I can't tell if you are commenting (yes, that was the idea), critiquing how we are trying to accomplish a feature gate in the CLI, or something else?

still might do this at some point

This project is being archived, closing open issues and PRs.
Please see this PR for more information: https://github.com/kubernetes/community/pull/6632


How to slug update if I update entity

My ask - if I create user, in my field slug set - firstname+lastname. if I update fields firstname and lastname slug not change, why?And What me need to do for this trable check? Because I use slug field(username) in my routing
http://stackoverflow.com/questions/31366450/how-to-slug-update-if-i-update-entity

this should be asked on the extensions repo. the bundle only contains the Symfony-specific integrations


Backport "bugfix: Exclude newer LSP4j, which is built on JDK 11" to LTS

Backports #20771 to the LTS branch.
PR submitted by the release tooling.
[skip ci]

No regressions detected in the community build up to lts-20902.
Reference


Web profiler gives an error 500 for any request

I'm not sure is the right place for this issue but I don't know where I should post it.
With the last version of the symfony SE, the web profiler gives me an error 500 for any request.
The error is :
The filter "convert_encoding" does not exist in "SwiftmailerBundle:Collector:swiftmailer.html.twig" at line 41

This issue is invalid. You have update your Symfony2 code to master branch which is compatible only with Twig 1.4 (not yet avaible).

Thank you to reply so quicly. If I use the Twig master branch all work fine but I think there is still a problem here correct me if I'm wrong. The symfony SE deps files allow user to update easily these vendors to the last version which is "stable". Actually, these deps files use the symfony master branch & twig v1.3.0 which is not compatible with the symfony master branch. So people who gets this version of the symfony SE will be affected by this issue.

Well, the master branch of the SE is a dev version so it might have bugs. This is one


Cancelling a publish task will keep the puback waiter indefinitely (QOS > 0)

I'm currently on hbmqtt but am considering porting to amqtt due to this bug. However this bug still exists.
I came across this issue when cancelling publish messages (using wait_for) after 10 seconds if not acknowledged on an embedded system. If the message was not acknowledged in time, the pub ack waiter would stay in memory forever.
Code to reproduce this error below. This will send 1000 messages in parallel. It will cancel a portion of them every loop before they receive the puback from the broker. Then they will print out the log message PUBACK waiter with Id 'x' already done. Eventually, all 65535 message ids will be taken and no new messages will send and the client will get stuck in a while loop forever looking for "next_packet_id" as there are none available.
Requires a mqtt broker on <IP_ADDRESS> to work
import random
import amqtt.client
import asyncio
from amqtt.mqtt.constants import QOS_1
import logging

log = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)

async def main():
    host = "<IP_ADDRESS>"
    port = 1883
    client_config = {
        "default_qos": QOS_1,
        "auto_reconnect": True,
        "reconnect_max_interval": 60,
        "reconnect_retries": -1,
        "keep_alive": 60,
    }
    client = amqtt.client.MQTTClient(config=client_config)

    await client.connect(f"mqtt://{host}:{port}")
    while True:
        futs = [
            asyncio.create_task(client.publish("test_topic", b"test", qos=QOS_1))
            for _ in range(1000)
        ]
        await asyncio.sleep(0)
        i = 0
        while True:
            if any(not fut.done() for fut in futs):
                # print(f"Fut not done {i}")
                pass
            else:
                break
            await asyncio.sleep(0)
            i += 1
            if i > random.randint(2900, 3005):
                cancelled = 0
                for fut in futs:
                    if not fut.done():
                        fut.cancel()
                        cancelled += 1
                print(f"Breaking after {i}: Cancelled {cancelled}")
                break
        await asyncio.gather(*futs, return_exceptions=True)

if __name__ == "__main__":
    asyncio.run(main())

Unit tests are written on the PR which can reproduce this issue on the master and are solved in the PR
@pytest.mark.asyncio
async def test_cancel_publish_qos1():
    """
    Tests that timeouts on published messages will clean up in flight messages
    """
    data = b"data"
    broker = Broker(broker_config, plugin_namespace="amqtt.test.plugins")
    await broker.start()
    client_pub = MQTTClient()
    await client_pub.connect("mqtt://<IP_ADDRESS>/")
    assert client_pub.session.inflight_out_count == 0
    fut = asyncio.create_task(client_pub.publish("test_topic", data, QOS_1))
    assert len(client_pub._handler._puback_waiters) == 0
    while len(client_pub._handler._puback_waiters) == 0 or fut.done():
        await asyncio.sleep(0)
    assert len(client_pub._handler._puback_waiters) == 1
    assert client_pub.session.inflight_out_count == 1
    fut.cancel()
    await asyncio.wait([fut])
    assert len(client_pub._handler._puback_waiters) == 0
    assert client_pub.session.inflight_out_count == 0
    await client_pub.disconnect()
    await broker.shutdown()

@pytest.mark.asyncio
async def test_cancel_publish_qos2_pubrec():
    """
    Tests that timeouts on published messages will clean up in flight messages
    """
    data = b"data"
    broker = Broker(broker_config, plugin_namespace="amqtt.test.plugins")
    await broker.start()
    client_pub = MQTTClient()
    await client_pub.connect("mqtt://<IP_ADDRESS>/")
    assert client_pub.session.inflight_out_count == 0
    fut = asyncio.create_task(client_pub.publish("test_topic", data, QOS_2))
    assert len(client_pub._handler._pubrec_waiters) == 0
    while (
        len(client_pub._handler._pubrec_waiters) == 0 or fut.done() or fut.cancelled()
    ):
        await asyncio.sleep(0)
    assert len(client_pub._handler._pubrec_waiters) == 1
    assert client_pub.session.inflight_out_count == 1
    fut.cancel()
    await asyncio.sleep(1)
    await asyncio.wait([fut])
    assert len(client_pub._handler._pubrec_waiters) == 0
    assert client_pub.session.inflight_out_count == 0
    await client_pub.disconnect()
    await broker.shutdown()

@pytest.mark.asyncio
async def test_cancel_publish_qos2_pubcomp():
    """
    Tests that timeouts on published messages will clean up in flight messages
    """
    data = b"data"
    broker = Broker(broker_config, plugin_namespace="amqtt.test.plugins")
    await broker.start()
    client_pub = MQTTClient()
    await client_pub.connect("mqtt://<IP_ADDRESS>/")
    assert client_pub.session.inflight_out_count == 0
    fut = asyncio.create_task(client_pub.publish("test_topic", data, QOS_2))
    assert len(client_pub._handler._pubcomp_waiters) == 0
    while len(client_pub._handler._pubcomp_waiters) == 0 or fut.done():
        await asyncio.sleep(0)
    assert len(client_pub._handler._pubcomp_waiters) == 1
    fut.cancel()
    await asyncio.wait([fut])
    assert len(client_pub._handler._pubcomp_waiters) == 0
    assert client_pub.session.inflight_out_count == 0
    await client_pub.disconnect()
    await broker.shutdown()


freeCodeCamp Gaya

https://www.facebook.com/groups/freecodecamp.gaya/

@Mayankgbrc
Please open a new issue using the New Study Group template

@Mayankgbrc Reopening this as the forum post was linking straight into a default new issue rather than the New Study group template so you wouldn't have known to use it.  I'll add this group shortly.


[6.0] Revert "Merge pull request #72708 from aschwaighofer/c_array_heuristic_6.0"

This reverts commit 0e350d8d2c0252e3391e71b3eeda83e551ad93bc, reversing changes made to 1e5659ed00e2491f39f50fd263746e3787a3526b.
It triggered a bug that needs to be tracked down.
rdar://128019015

@swift-ci test

@swift-ci test


Error on select best quality for imdb

Hello,
today i've an error on automatic choice for best quality :
youtube-dl -F http://www.imdb.com/video/imdb/vi1692448025
[imdb]<PHONE_NUMBER>: Downloading webpage
[imdb]<PHONE_NUMBER>: Downloading player page
[imdb]<PHONE_NUMBER>: Downloading info for SD format
[imdb]<PHONE_NUMBER>: Downloading info for 1080p HD format
[info] Available formats for<PHONE_NUMBER>:
format code  extension  resolution note
auto         m3u8       unknown
1080p        mp4        unknown
SD           mp4        unknown    (best)
Version :
/youtube-dl -v
[debug] System config: []
[debug] User config: []
[debug] Command-line args: [u'-v']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2016.02.22
[debug] Python version 2.7.3 - Linux-<IP_ADDRESS>-grsec-xxxx-grs-ipv6-64-x86_64-with-debian-7.9
[debug] exe versions: ffmpeg N-48916-g856452c-static, ffprobe N-48916-g856452c-static, rtmpdump 2.4
[debug] Proxy map: {}
Best quality should be 1080p, it downloaded SD.
Many thx
Arnaud

This issue has been fixed and fix will be incorporated in the next version of youtube-dl.

Closed in 5 minutes ! You're the best !
Thank you


dask: TypeError: fit() got an unexpected keyword argument 'callbacks'

Is there planned support for dask to have callbacks?   When using things like Optuna I hit:
  File "/home/jon/h2oai.fullcondatest/h2oaicore/models.py", line 1512, in objective
    model.fit(X, y, sample_weight=sample_weight, callbacks=[pruning_callback], **kwargs_fit)
  File "/home/jon/minicondadai/lib/python3.6/site-packages/xgboost/core.py", line 421, in inner_f
    return f(**kwargs)
TypeError: fit() got an unexpected keyword argument 'callbacks'

@trivialfis

It is already supported:
https://github.com/dmlc/xgboost/blob/fb56da5e8b95f3fa0a797a4b2bd073d13e28ed3b/tests/python/test_with_dask.py#L647-L671

Is the scikit-learn API not supporting it?  I'm using latest 1.3.0 master.

Not yet, currently, you'd need to use xgb.dask.train() to use the callbacks argument.

Also, Optuna's pruning callback function doesn't yet work with xgboost.dask: #6323

Ok, so even if I tried to use native API for Optuna, it would fail some other way.

That's right, until #6323 is resolved.

Is the Optuna calback code complicated?  I'll have to check it out.

I will submit a PR on optuna next week.  We haven't done any test on using dask interface with optuna.

Awesome, thanks @trivialfis !

Closed by https://github.com/dmlc/xgboost/pull/6471


Why not use ES6?

Sorry to disturb you. I think your resume template is helpful. However I just wondered why you do not use es6 which I think will make the code more clear...

@GuoXiaoyang I am using ES6 aspects. Specifically, I am using const for variable declarations everywhere.
But I guess you're referring to using ES6 classes for React class creation?
I have been meaning to do this, just have not had the time to make the switch.
One thing I do not like about using ES6 classes to extend React.Component is that, we lose the auto-binding capability and we need to bind the context separately. I was initially hesitant to make this switch before and that is why I introduced create-react-class as a dependency, but now having seen a number of examples, I will switch to using arrow functions in method definitions.


Bucket4j expecting redis to be up and running, if redis goes down my application going down

Hi Team,
Iam trying bucket4j with redis in distributed environment. Iam using LettuceBasedProxyManager to connect to redis to get/store buckets in redis. My application is expecting redis to be up and running while starting application, also when redis goes down when application is running, my application going down. In my case i want to use redis as optional. If redis is down, my application should work fine with out rate limit. Can you please confirm is there any way to do this ?

There is nothing special to Bucket4j. Firstly read this checklist and decide what is behavior that need to be applied when Redis is down. Secondly, apply any open-sourced circuit-breaker what you want, or write own.

According to Redis availability on application start:
Distributed buckets are lazy, proxies do not try to communicate with remote storage until proxy is explicitly called by user, so unawailabily Redis on start should not affect application startup.


workflow to publish package with github packages

https://github.com/InvisibleCommerce/shipped-suite-react-native-client-sdk/issues/26

hmmm, I think I don't 100% understand how GitHub packages works.
does normal npm install or yarn add command work with GitHub packages out of the box? or does a user need to add GitHub packages registry to their project in order for it to work (e.g. add/change .npmrc with GitHub packages as the registry)?
if it's the latter, then maybe we should stick to npmjs but just start scoping our packages.

They just need update the package name, you can check the document here.
After published, the package name may be changed from react-native-shipped-suite-sdk to<EMAIL_ADDRESS>

yeah, so it seems they would need to change .npmrc to use GitHub packages registry instead of npmjs. I think we should just use npmjs with scoped packages.

yeah, so it seems they would need to change .npmrc to use GitHub packages registry instead of npmjs. I think we should just use npmjs with scoped packages.

okay, so we can close this pull request first?

yes


import/export variants and push-config.json link

Adds a import/export options on variants.
Adds a link to download push-config. Please add a small text on the modal under the title to explain what it does with a link to the documentation.

Thanks @andresgalante !
I've linked it to the respective JIRAs:
https://issues.jboss.org/browse/AGPUSH-1393
https://issues.jboss.org/browse/AGPUSH-1392


how to setting configuration option??

I don't know how to  set configuration options
please tell me

I believe you might have missed the config folder that is alongside the mods folder where you installed this mod. In that is a file that is called either lootablebodies.cfg or lootable_bodies.cfg (I do not recall which) that contains all the configuration options for this mod.
Unless things have changed since I last looked at this mods code, there is no in-game gui for managing the config options and I apologize for that lack but I am only tangentially on the team for this mod, though I have tried to do some work to clean up its code and find and remove some really nasty bugs that it has.


HWIDs tasks

This should take care of the tasks Handling all hwIds and Log all new HWIDs to the Hwid table
It also prevents banned users from logging in or creating a new account

I have a doubt @james431987 what happens if:

login with no account from a computer with HWID: 123456 UID: test
DB: HWID 123456 userID test created
You ban me
Change PC, login again on userID test, my HWID is changed (in theory)

Will the ban apply in that case? My only concern is that you run add_hwid_to_user(user.id, req.hwIds[0], db) if not user and therefore you will get only the HWID once at registration, which I think might be outdated if I change my machine?
Not sure if my reasoning is correct, just reading your code and thinking out loud :)

I have a doubt @james431987 what happens if:

login with no account from a computer with HWID: 123456 UID: test
DB: HWID 123456 userID test created
You ban me
Change PC, login again on userID test, my HWID is changed (in theory) but it don't get logged in the db

Will the ban apply in that case? My only concern is that you run add_hwid_to_user(user.id, req.hwIds[0], db) if not user and therefore you will get only the HWID once at registration, which I think might be outdated if I change my machine?
Not sure if my reasoning is correct, just reading your code and thinking out loud :)


Fail to delete the database of the attached PostgreSQL server

OS: All
Build Version: 20240306.1
Regression: Not a regression
Repro Steps:

Create a PostgreSQLSingle server -> Expand it.
Right click the database "postgres" -> Click "Copy Connection String...".
Attach PostgreSQLSingle server without database name, like postgres://us:Daxinge0104@anicole-f-d.postgres.database.azure.com:5432?ssl=true.
Navigate to Workspaces -> Right click the attached PostgreSQLSingle server -> Create a new database.
Right click the above database -> Delete Database... -> Delete.
Chech whether succeeds to delete the database.

Expect:
Succeed to delete the database.
Actual:
Fail to delete the database.

More Info:
This issue also reproduces for the PostgreSQLFlexible server.

An open connection to the database would prevent people from deleting it. The user can mitigate this issue by connecting to another database. The extension should have a way to reset connection because that database could be the last one that the user can connect to from the extension because we don't let people connect to default databases from the UI.


Create a $HOME/chef/cookbooks directory

$USERPROFILE\chef\cookbooks on Windows
$HOME/chef/cookbooks on Mac

Not sure if we want to be this prescriptive about where devs keep their cookbooks. Seems like this should be created in a company-specific wrapper cookbook if needed.


Fix Coveralls

Changes Unknown when pulling b0ac2a14ad4771c3812172194abf0224f4a6da7e on fix_coveralls into ** on master**.

Changes Unknown when pulling 992251e80d4b3504155deb933b18a6136ace6a92 on fix_coveralls into ** on master**.

Changes Unknown when pulling e0b22f6cfc3d28ed4716113f7127ba179edf4eb6 on fix_coveralls into ** on master**.


Is there a way to set ActionMailer SMTP Authentication type to nil?

I have an internal SMTP server at work that is configured to have no authentication.
Assigning no SMTP authentication type in huginn (leaving it empty), it appears that huginn sets plain authentication type on Action mailer.
I get an error with this trace from the mailer worker:
                       503 #5.3.3 AUTH not available

/usr/lib/ruby/2.3.0/net/smtp.rb:977:in `check_auth_response'
/usr/lib/ruby/2.3.0/net/smtp.rb:741:in `auth_plain'
/usr/lib/ruby/2.3.0/net/smtp.rb:733:in `authenticate'
/usr/lib/ruby/2.3.0/net/smtp.rb:568:in `do_start'
/usr/lib/ruby/2.3.0/net/smtp.rb:521:in `start'
/app/vendor/bundle/ruby/2.3.0/gems/mail-2.6.4/lib/mail/network/delivery_methods/smtp.rb:113:in `deliver!'
/app/vendor/bundle/ruby/2.3.0/gems/mail-2.6.4/lib/mail/message.rb:2149:in `do_delivery'

I get that same message if I set SMTP_AUTHENTICATION to "plain", "login" or "cram_md5", any other value like "none" returns an "invalid authentication type" error from ActionMailer.
If I set SMTP_AUTHENTICATION to empty string or null, this line https://github.com/cantino/huginn/blob/5868c7b4b23516bce7f7a9867b2310d6ef85980b/config/initializers/action_mailer.rb#L5 causes the value assigned to ActionMailer to be "plain".
Looking at the ActionMailer source files in the rails repository, here: https://github.com/rails/rails/blob/92703a9ea5d8b96f30e0b706b801c9185ef14f0e/actionmailer/lib/action_mailer/delivery_methods.rb#L31 it seems that the authentication field of the smtp delivery method type can be nil and should be nil if no Auth is to be attempted.
So my question is, how do I set force that value to nil using a huginn configuration, without it reverting to "plain"?

Hi @ashleysommer,
I think you are right and we need a special string value which will converted to nil. Can you try to change the line in the initializer to  authentication: (ENV['SMTP_AUTHENTICATION'] == 'nil' ? nil : ENV['SMTP_AUTHENTICATION'] || "plain"),?

"none", maybe?

Thanks for the suggestion.
I didn't mention, I am using the docker container of huginn, pulled from Docker Hub. Env variables are passed I from my compose file.
I can't really make that quick change to see if it works. I will need to clone the repo, make the change and rebuild the container locally to test it. I probably won't have time to do that for a few days.

Ok, I got it working.
I created a derived Dockerfile and copied in a modified config/initializers/action_mailer.rb file over existing one.
Adding the suggested line:
authentication: ENV['SMTP_AUTHENTICATION'] == 'none' ? nil : ENV['SMTP_AUTHENTICATION'] || "plain"
Successfully set the auth type to nil in action_mailer, however the ruby/net/smtp code was still calling auth_plain to try to authenticate and I was getting the same error.
I found the culprit here:
https://github.com/ruby/ruby/blob/ruby_2_3/lib/net/smtp.rb#L568
What I found in that line of code, if there is a username set the smtp system will still try to authenticate and will fall back to DEFAULT_AUTH_TYPE if no auth type is provided.
I assumed that setting SMTP_USER_NAME: (empty) in the environment file would be enough because the initializer uses ENV['SMTP_USER_NAME'].presence to set nil if the env variable is not present. However I think it is present and set to an empty string.
The only way I was able to get it to work was to add a similar line as above:
user_name: ENV['SMTP_USER_NAME'] == 'none' ? nil : ENV['SMTP_USER_NAME'].presence
to set user_name to nil if "none"
I tried lots of varients of setting SMTP_USER_NAME to an empty string, or unsetting it, but in each of those cases SMTP_USER_NAME was replaced with<EMAIL_ADDRESS>as per the .env.example file.
Then finally, after setting SMTP_USER_NAME to "none" to force it to nil, I was getting an error along the lines of "SMTP-AUTH requested by no Username provided". But authentication was set to nil.
Again, looking at the ruby smtp code, it seems that if there is a password provided but username is nil, it queries the SMTP endpoint to see what Auth types are available, chooses an auth type, then raises an exception because there is no Username set.
As with the username above, I tried with SMTP_PASSWORD set to empty string and unset, but in each case it defaults to "yourpassword" as per the .env.example file.
I replaced the password line in the initializer with this:
password: ENV['SMTP_USER_NAME'] == 'none' ? nil : ENV['SMTP_PASSWORD'].presence
The first ENV key is correct, it checks SMTP_USER_NAME and sets password to nil if SMTP_USER_NAME is "none".
Here is the final action_mailer.rb that works for me:
ActionMailer::Base.smtp_settings = {
  address: ENV['SMTP_SERVER'] || "smtp.gmail.com",
  port: ENV['SMTP_PORT'] || 587,
  domain: ENV['SMTP_DOMAIN'],
  authentication: ENV['SMTP_AUTHENTICATION'] == 'none' ? nil : ENV['SMTP_AUTHENTICATION'] || "plain",
  enable_starttls_auto: ENV['SMTP_ENABLE_STARTTLS_AUTO'] == 'true',
  user_name: ENV['SMTP_USER_NAME'] == 'none' ? nil : ENV['SMTP_USER_NAME'].presence,
  password: ENV['SMTP_USER_NAME'] == 'none' ? nil : ENV['SMTP_PASSWORD'].presence,
  openssl_verify_mode: ENV['SMTP_OPENSSL_VERIFY_MODE'].presence,
  ca_path: ENV['SMTP_OPENSSL_CA_PATH'].presence,
  ca_file: ENV['SMTP_OPENSSL_CA_FILE'].presence
}

and what my environment.yml in the docker-compose script looks like:
version: '2'
services:
  huginn_base:
    environment:
      DATABASE_ADAPTER: mysql2
      DATABASE_NAME: huginn
      DATABASE_USERNAME: huginn
      DATABASE_PASSWORD: myhuginnpassword
      APP_SECRET_TOKEN: mysecrettoken
      SMTP_DOMAIN: mydomain.com.au
      SMTP_USER_NAME: none
      SMTP_PASSWORD:
      SMTP_SERVER: smtp.mydomain.com.au
      SMTP_PORT: 25
      SMTP_AUTHENTICATION: none
      SMTP_ENABLE_STARTTLS_AUTO: "false"
      EMAIL_FROM_ADDRESS<EMAIL_ADDRESS>      SEND_EMAIL_IN_DEVELOPMENT: "true"

@knu True, that is a better name 😄
@ashleysommer Awesome research, glad you figured it out! Would you be willing to make a pull request with those changes? We have a bot which automatically builds docker images for ever PR which allows you to verify the changes still work.

PR created: https://github.com/cantino/huginn/pull/1942


[Matter1.2 TH] [TC-SM-1.2] Step 6, throwing unexpected error.

Description:
When verifying the Aggregator device, it always throws an "AttributeError: 'list' object has no attribute 'update'".
LOG:
python test.log
chip-bridge-app.log

I have tried the update and found that I still need to update the following code to fix this test script. Please confirm. Thank you.

@panshaoem Could you kindly attempt the following approach and let me know it works or not. In line 557, define sub_children as a set, and in line 559, include the second argument as self.endpoints[endpoint_id].

@panshaoem Could you kindly attempt the following approach and let me know it works or not. In line 557, define sub_children as a set, and in line 559, include the second argument as self.endpoints[endpoint_id].

@manjunath-grl Still throwing unexpected error

@manjunath-grl
Could you please confirm if my updates are correct?

In line 557, define sub_children as a set
In line 559, include the second argument as self.endpoints
In line 560, swap the positions of the parameters sub_children and self.endpoints[endpoint_id][Clusters.Descriptor][Clusters.Descriptor.Attributes.PartsList]

The last line should not be swapped. If you DON'T swap the last line and run against the bridge app, you will see failures on the feature map. This is because the bridge app does not correctly implement the feature map. It is a genuine failure.

oop, nope, I'm mistaken. You are correct about line 560

https://github.com/project-chip/connectedhomeip/pull/31644 for fix


Use whatever is after -- as the SSH command.

Updates the codegansta/cli package.
Change the way commands are detected
Refs: #434, #445, #247

LGTM Thanks!


fix(@angular/ssr): ensure correct Location header for redirects behind a proxy

Previously, when the application was served behind a proxy, server-side redirects generated an incorrect Location header, causing navigation issues. This fix updates createRequestUrl to use the port from the Host header, ensuring accurate in proxy environments. Additionally, the Location header now only contains the pathname, improving compliance with redirect handling in such setups.
Closes #29151

The changes were merged into the following branches: main, 19.0.x


performence

Coverage decreased (-0.4%) to 99.476% when pulling 78b3cbc2654fa4126b9bb9afe7989e08267d8b4f on optymalization into ae39b9348fb686c0c72b2f0bca53e39c14a08a09 on master.

Coverage increased (+0.1%) to 100.0% when pulling f01dd3e31fc5914d51057802642cf00cbe7d1e86 on optymalization into ae39b9348fb686c0c72b2f0bca53e39c14a08a09 on master.


Changed evaluation order of error checking

so that actual DuckDb error message is returned to caller, if it exists.
Fixes #3

@travis-leith  Please add the message in the constructor of the DuckDBDataReader class too.

@travis-leith Thanks! Will publish a new package later today.