Option to add torrents with different hashes paused

Hi!
Great tool, thanks! I have a slight issue with how it queues torrents in inject mode though, at least on Transmission.
If a torrent has the same file paths than another one but the hashes differ, on adding the new torrent, cross-seed should:

trigger a hash verification (already does that, which is great).
but add them paused.

The reason is that if the hashes genuinely differ on two different trackers, then adding the new one unpaused will make the client always overwrite the data for the old one as soon as verification completes (provided it has seeds for it on the new tracker). This in turn will make the data invalid for the pre-existing tracker...
Of course it's not great that different trackers have different hashes for the same torrent, but the choice of which tracker we should keep the data for should fall on the user - so in this case the torrents should be added paused.
My setup:

Transmission 4.0.4
All hosted on docker
config:

module.exports = {
    delay: 10,
    torznab: [
        "http://xxx:9696/yyy/api?apikey=zzz",
        // Some other ones here
    ],
    dataDirs: [],
    matchMode: "safe",
    dataCategory: undefined,
    linkDir: "/downloads",
    linkType: "hardlink",
    skipRecheck: false,
    maxDataDepth: 2,
    torrentDir: "/torrents",
    outputDir: "/cross-seeds",
    includeEpisodes: true,
    includeSingleEpisodes: false,
    includeNonVideos: true,
    fuzzySizeThreshold: 0.02,
    excludeOlder: undefined,
    excludeRecentSearch: "1y",
    action: "inject",
    rtorrentRpcUrl: undefined,
    qbittorrentUrl: undefined,
    transmissionRpcUrl: "http://aaa:bbb@ccc:9091/transmission/rpc",
    delugeRpcUrl: undefined,
    duplicateCategories: false,
    notificationWebhookUrl: undefined,
    port: 2468,
    host: undefined,
    apiAuth: true,
    rssCadence: "30min",
    searchCadence: "1 day",
    snatchTimeout: undefined,
    searchTimeout: undefined,
    searchLimit: 1000,
};

The workaround is to use the save action mode while making sure start_added_torrents is false in the Transmission config.
In terms of implementation I assume it would be as simple as using the paused property of the torrent-add RPC call to Transmission

It doesn't appear from the spec that Transmission allows for adding torrents WITHOUT rechecking via the RPC? Is this an option when you manually add a torrent? Likely, this implementation wasn't made this way due to it not being available.
https://github.com/transmission/transmission/blob/main/docs/rpc-spec.md#34-adding-a-torrent
If a torrent is added in a paused state, does it still check and just not download?

Thanks for your quick reply!
I just had a play with the RPC calls myself using a torrent with a single file that I know has different hashes on different trackers (the one on which I identified this issue), and one I know has the same hashes.
The verification is indeed automatic: Transmission only does the verification where the hashes don't match.
It then either starts or not the torrent once the verification is complete, depending on the value that is set to the paused parameter in the add-torrent request.
For the torrent where the hashes do match, it just adds it with a completed status, paused or unpaused depending on the parameter in the request.
If I don't add the parameter to the request, the verification behaviour is the same, but for the paused/unpaused behaviour it falls back to the behaviour defined by the defined by the start_added_torrents setting in the Transmission config.
Solution 1
Just remove the paused property on the RPC call.
This means the behaviour is defined by the Transmission configuration.
Pro: easiest
Cons:

users need to know to change their Transmission config
the transmission configuration impacts the watch folder (people might be using that for other workflows) and other RPC calls where the paused property isn't defined (I suspect *arr apps explicitly define paused = true so I think those aren't going to be impacted).

Solution 2
Add a configuration parameter to specify that property value, where the value can be:

true/false to explicitly set the value in the RPC call
undefined to keep the behaviour unchanged (so it doesn't break the behaviour for people upgrading xseed)
null to not set the RPC property (and fall back to the Transmission config). Not quite sure this has a lot of value though to be fair.

Con: setting this to true, all downloads are paused and the user needs to do maintenance on their Transmission
Solution 3
Gold plated solution

Add the torrent with the parameter to false
Get the torrent immediately to get the status (e.g. 2-verifying or 0-stopped)
If the status is 0-stopped, start the torrent

Pro: best automation
Con: more involved

I don't think 2nd solution is going to happen, solution 3 seems best, however even if we get the torrent immediately we could miss the verifying status.
Transmission....ugh.

Has there been feature requests for this upstream (Transmission to skip rechecking on adding) ?

I wouldn't want it to skip rechecking, because the content of the file is fundamentally different.
I don't know if I've explained the negative impact of this well enough:
Imagine I have a file called My.Precious.File.mkv. Let's say I have two trackers TrackerA and TrackerB that refer to the same file name and size in their torrents, BUT the file content they refer to is slightly different. So the hashes for the two files are different, because the file content is different. Most of the time when I see this, the file hash is only different by like 0.1%. Maybe the first piece out of 10000 is different, but the rest is fine.
Now imagine I have the torrent already added to Transmission on TrackerA, because I got it straight from there. And it's seeding. And for good measure, I'm the last seeder on that torrent: no one is ever going to have 100% of that content on that tracker unless they get it from me.
Now xseed finds the file on TrackerB, and adds it. Transmission then sees that the hashes (and therefore the content) are different, so it triggers a full verification on the TrackerB torrent that has just been added. It goes all the way to 99.9%, until it finds the 0.1% that's different. If you have added it unpaused, and there are seeds, then Transmission happily downloads that different piece, and directly overwrites the content on the file for that piece.
Now that piece is invalid on TrackerA: if I trigger a verification on TrackerA, or if a peer tries to get that specific piece from me, then Transmission is going to realise that the piece is wrong, and it will set it to 99.9% complete. And as I was just saying, I was the last seeder on TrackerA: so now the torrent is incomplete on TrackerA, and can never be complete again. It's essentially dead.
Notes:

This isn't a client-specific issue. It's an issue that requires user intervention, because the two torrents on the two trackers are different and that's not going to be solved unless one of the trackers trumps and replaces theirs. So the user needs to make a choice at that point: seeding on TrackerA only, seeding on TrackerB only, or try to get the torrent trumped on either of the trackers.
You might think this doesn't happen a lot, but it does. A lot. This happens because usenet groups tend to automatically grab movie releases from the big trackers e.g. TrackerA, then ever so slightly changes the data before they upload them to the newsgroup indexers. It still works, but something in the file metadata was changed. Some good soul then downloads the release from usenet, and uploads it to TrackerB (possibly because they don't have access to TrackerA). I can give you literally dozen of examples of such torrents.

The worst about this is, when this happens, that issue might reveal itself way way later: when a peer tries to get that specific piece again from me, which might not happen for years. At that point, I'll most likely have no backup of the original data. So injecting torrents that we know are wrong is ever so slightly corrupting the swarm data in away that might never be recoverable.
As I was just saying, all I have to do to solve it to myself is to disable the injection, fall back to the watch folder and make sure Transmission doesn't add torrents started. But I think xseed needs to change its RPC call so it doesn't inject torrents without the matching data, and certainly it should never skip recheck on purpose to avoid facing the issue.

it should never skip recheck on purpose to avoid facing the issue

I disagree - in the other clients this is really the best option.

New torrent thinks it's done, it starts without user intervention ✅
In the event that the data doesn't match, it stops without overwriting any data ✅

I'm interested in solution 1 - does this fall back to some global setting in Transmission that people can set on their own?

In the event that the data doesn't match, it stops without overwriting any data ✅

At least not overwriting data sounds like a better strategy, to be honest! But if the torrent is 100% from the beginning, the client won't know that the torrent data is faulty until it either verifies it or tries to upload it to a peer. One way or another, the issue could be latent until someone tries to get the data from the client.

I'm interested in solution 1 - does this fall back to some global setting in Transmission that people can set on their own?

Yes, see start-added-torrents here. This impacts the default behaviour for adding torrents, both via RPC and via the watch folder. The default behaviour can be overridden in RPC calls by using the property that xseed uses.
Solution 1 would be a good start for people who use Transmission, as long as they know to set the configuration value. Clients like radarr also set the property in their RPC calls here so changing the default in configuration doesn't break those apps.

This is actually a specific issue for transmission, every other client supports starting without checking, and error's when fault is found in a torrent rather than redownloading automatically. The behavior we use for every other client prevents overwriting.
While there is probably a way to handle this, it seems odd that Transmission would take this stance, as I previously said, have you searched their github for issues/requests for this to be enabled/changed?

Take a look at https://github.com/transmission/transmission/pull/2626:

This PR lets newly-added torrents skip the full verify step if the torrent fulfills all these conditions:

The torrent has metadata (i.e. is not a magnet link)
All files exist
All files are not partial (.part) files
All files' sizes match the sizes listed in the .torrent file
All files' mtimes (timestamp of when they were last modified) are older than when the torrent was added
The first piece passes the checksum test

When this is true, the initial verify step is bypassed and the torrent is treated like a full seed. Individual pieces are lazy-checked on demand when peers request blocks from them.

I'm curious about the exact behavior you're experiencing here—which of these bullet points is being violated? Or is it coming from the

Individual pieces are lazy-checked on demand when peers request blocks from them

part?

I've seen that PR before too
I would assume it's the last bullet point that fails and triggers the verification

The first piece passes the checksum test

I don't mind Transmission verifying the data, since it's actually correctly detecting that the data is wrong. I do have a problem with Transmission overwriting it as soon at it finishes verifying, which it does because the torrent was added unpaused, and indeed sounds like a design issue with Transmission, not xseed - but not something that can easily be worked around.
So, you are right, it would be better if Transmission never overwrote data, and just paused the torrent, even if the torrent is added unpaused. But I can't find an option, or a bug or feature request, to that effect.

Sounds like you could make one and see what they say, since handling that in Transmission is the proper way to do it and not rely on fickle workarounds that could change at the whim of another project (Them)

Alright I opened one. Let's see where this goes!
xseed could still avoid setting the field, and let Transmission configuration deal with it. Even if Transmission gets it fixed, xseed wouldn't really need to set the field either - we could still use the configuration parameter to make Transmission behave as we want.

I would assume it's the last bullet point that fails and triggers the verification

Is this something you can verify with a diff of your files that have this problem?
What would help here on the technical side is if Transmission had a way for us to specify that we expect this torrent to be a seed, not a download. I don't think the behavior should be the same between those two use cases. In the download case, I'd want it to recheck and then start, In the seed case, I'd want it not to recheck, but just stop if it ever realizes it's got incomplete or incorrect data.

Is this something you can verify with a diff of your files that have this problem?

I can actually confirm that in transgui .
This is after verifying the data in the Tracker B torrent (the same file gets 100% verification successful in Tracker A). You can see the first piece is different, so it will have been caught by Transmission.
I can also see it when manually adding the torrent in transgui: if the file is already there, most torrents will get straight to 100% complete (I have the fast verify option on). This one goes straight to verification.

@mmgoodnow I've received a reply

Main thing is you should always add those torrents paused no matter what. Then, at a later date, you can decide to start a torrent depending on percentDone

Similar to what I was suggesting: would it be possible, as a quick fix, to remove the paused = false property on adding Transmission torrents, so that users can define the behaviour they prefer in the Transmission configuration?

That kind of removes some of the main benefits of cross-seeding the way we do it....
If they don't want to support what is standard in every other client, I don't really know what to say. If nothing else they could easily provide a switch/option to enable functionality. It would be minimal/trivial to conform to the industry standard.

I'm not that familiar with the Transmission architecture but I doubt it would be trivial - the way it's currently designed, it always verifies added torrents, not just torrents added for seeding, so at the very least they'd have to add a new flag to torrent-add and then use that flag to decide if to start the torrent after a verification ends and the data is found not to be complete (or even missing).
You guys made a great tool, and I'll use it either way, even queueing paused. For now that means using the watch folder instead of RPC, which loses the folder awareness that the RPC calls have.
Even if you make the change (Solution 1, the one-liner), it only adds more configurability, it doesn't remove the choice of behaviour for anyone - but it adds choice for me and anyone else who would like to use Transmission RPC without risking data corruption, which is arguably worse than data loss. I know it's not ideal to load torrents paused - but it's the only option really, if the alternative is that Transmission overwrites data it shouldn't.
I don't want to be annoying, and obviously I should be moving to another client just because of that incompatibility - but that would be very hard work. I'm obviously happy to make the PR myself if you need. I'm also aware that I can just fork so I can change that line for myself, but there's overhead to that too in terms of delivery, so I'm trying to avoid doing that.

I think there might be a way to support this. I definitely like the idea of solution 3, but we also already have a flag that represents rechecking and adding paused. I don't think we use that flag in the transmission adapter but we could.
@GordonFreemanK if you open a PR that does either of those, I think we could get it through.

Sorry for the delay! I've made the PR above for Solution 3. Left it as Draft because I don't know how to test it. Any tips on how to do that?

Sorry for the delay! I've made the PR above for Solution 3. Left it as Draft because I don't know how to test it. Any tips on how to do that?

If you have npm/node installed, you can just npm run watch from the cross-seed directory, and then node dist/cmd.js daemon will execute the daemon (or change to whatever you want)

This should be handled with #750 and using matchMode: safe. It will recheck all injections and resume only if complete.


Make -Force parameter in Stop-RSJob permanent so it "just works"

Stop-RSJob should "just work" without the need of the -Force parameter so it doesn't hang on waiting for a job to finish. Fix already completed and just needs uploaded tonight.

Was this ever implemented or was it subsequently removed? I'm trying to use Stop-RSJob to stop hung WMI calls in my scriptblock, and the call to Stop-RSJob is just hanging as well. This is on <IP_ADDRESS>, and I'm also not seeing a -Force parameter in the function.

please show output of Stop-RSJob with -Verbose -Debug switches

That produced the following, which doesn't appear to be much help. It doesn't do anything beyond that, it's hung up at this point.
DEBUG: Begin
DEBUG: Process
DEBUG: End
DEBUG: ParameterSet: Job
VERBOSE: Stopping f4a82347-835f-439d-9eaf-cef6882c6ca4
VERBOSE: Killing job f4a82347-835f-439d-9eaf-cef6882c6ca4

What version you using ? Do you tried to use the latest from GitHub ?
I'm asking because I do not see all the messages from current build
Maybe the fix already here or maybe the hang occurs inside the powershell itself (or wmi) and we can't help you a lot

I'm using <IP_ADDRESS> which I believe is the latest version. I looked at the code for stop-rsjob and those are the only messages I see, it appears that it's hanging on  [void] $_.InnerJob.Stop(). I know it's a WMI call that's causing it to hang, but I should still be able to kill that thread similar to other scripts where we're using the native Stop-Job commands. There's a lot of overhead using Powershell jobs, so I've been working on converting to using PoshRSJob instead.

the latest here is <IP_ADDRESS>, it not marked as release but have important fix in which can be decisive in your case
the hang can occur if $_.InnerJob.Stop() throws exception and [System.Threading.Monitor]::Exit($PoshRS_jobs.syncroot) not executed - its a deadlock

I downloaded and tested <IP_ADDRESS> and it hangs up on the same statement. I don't know what it is about WMI that causes this, I've tried various techniques to prevent this and still run into server that cause the WMI call to just hang indefinitely. Killing the thread seems to be the only option left.

what so special about these WMI calls ?
Can I reproduce it on my environment ?
may be the WMI on these servers should be repaired ?

Nothing special about the WMI call, just gathering drive space information using Win32_Volume. It's not clear exactly what's wrong with WMI that's causing this, as most of the time if WMI needs to be fixed the call fails. We've also tried multiple ways to get the WMI call to timeout as well, but still occasionally run into servers where the WMI call will hang indefinitely and cause Powershell to hang.
As I mentioned we have a workaround using Powershell jobs to run against servers in parallel, since we can successfully kill the job for an individual server. I thought that Stop-RSJob would work the same way and kill that runspace, but it just hangs.


Need help disabling a command or change it's prefix

I want to disable or change the prefix of the 'e' command on my server. Any idea how? Thanks in advance.

In the next update you will be able to change/remove the command if you host.
You can disable it with ;sc e disable

Thanks for the help! It's better than nothing, but now a message shows up saying that the command has been banned.
In english conversation this isn't much of a problem, though. But in other languages a lot of sentences start with "e" and it gets spammy really really quick.

use ;v 0 to disable verbosity


Revisit New and Legacy UI Navigation

Legacy Navigation and New Navigation

100% restore of existing nav menu functionality and location
Maintain two separate files

One file (navigation.py) per app, two constructs in that file - menu_items for v1, navigation for v2
Possibly add new base classes for v2, since logic needs to differ (v2 menus don't contain buttons, v1 menus do)

v1 - NavMenuTab (plugin-definable), NavMenuGroup (non-nestable), NavMenuItem (w/ buttons)
v2 - NavContext (hard-coded list of these), NavGrouping (nestable), NavItem (w/o buttons)

expose both class lists in nautobot.apps namespace!
REST API endpoint returns v2 only, v1 is handled via template context

Closed via #3964


FireEvent on Window

What:
Change the typings for fireEvent to accept Window in addition to DOM Elements.
Why:
Some events such postMessage are not fired on a DOM element but rather on Window.
How:

Updated typings
Add test
Expose window to the test environment

Checklist:

[ ] Documentation
[x] Tests
[x] Ready to be merged
[x] Added myself to contributors table

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

Hi @VadimBrodsky, I don't know if this PR was supposed to fix this, but at the moment I'm having an error when doing this:
 fireEvent.mouseMove(window, { clientX: 20, clientY: 50 })

Console throws:
TypeError: Cannot read property 'MouseEvent' of undefined
It works fine when using document instead of window.
This is using<EMAIL_ADDRESS>which itself should be using<EMAIL_ADDRESS>

Hmmm... Could you open a PR with a failing test? Thanks!

Hey @kentcdodds here is a csb link with a failing test:
https://codesandbox.io/s/3kxw3q8z8m
Does that help?

Got it. I'll have a fix shortly.

A fix will be released in a minute.


Printing in rdp-session leads to two print jobs in the "Myrtille PDF"-printer at the gateway

We just installed Myrtille 2.8. on a Windows Server 2016 Standard. Using Google Chrome 80 on a Windows 10 client, we successfull start a RDP-session using the Myrtille-gateway (Myrtille.Web-website).
When printing a document (for example from notepad), two print jobs are created (with different names) in the "Myrtille PDF"-printer at the gateway: first a blank document and a second one containing the expected document. In the printer queue of the RDP-client (linked printer) is only one print job created as expected. It seams that the customized version of FreeRDP included in the setup creates two print jobs. Is this a known issue and how can this be fixed? Any help is much appreciated.
Chears,
Andreas

Hi, thanks for your report. No, it's not normal and maybe a side effect after FreeRDP was resynced to the latest code base. I will investigate.

Hi, is there any news about this problem?

Hi, no; it's not a blocking issue, so I didn't prioritized it. But it was noted

I wasn't able to replicate this issue
First, are you talking about print jobs or printer names? because there are indeed 2 "Myrtille PDF" printers:

"Myrtille PDF". This printer is installed on the Myrtille gateway; it's usable locally to create PDFs (without Myrtille) if you need to
"Myrtille PDF (redirected xxx"). This is the same printer, but redirected through and usable into the RDP session

The print workflow is as following:
Using the Myrtille PDF redirected printer:

The print job into the remote session:

The print job on the Myrtille gateway:

The print job into the browser:

There have been two print jobs (first one a blank page, second one the expected document). As it turned out later, this behaveor occured on our testsystem only. In the meantime we’ve gone in production with our setup an in these conditions the pdf printer works as expected.
So if you can’t reproduce this issue, I think you can close thise case – maybe there was „someting special“ in the used Windows-installation.
Thank you for checking this issue and all the time you invest in this project!
Andrups
Von: cedrozor<EMAIL_ADDRESS>Gesendet: Sonntag, 20. September 2020 16:28
An: cedrozor/myrtille
Cc: andrups; Author
Betreff: Re: [cedrozor/myrtille] Printing in rdp-session leads to two print jobs in the "Myrtille PDF"-printer at the gateway (#213)
I wasn't able to replicate this issue
First, are you talking about print jobs or printer names? because there are indeed 2 "Myrtille PDF" printers:

"Myrtille PDF". This printer is installed on the Myrtille gateway; it's usable locally to create PDFs (without Myrtille) if you need to
"Myrtille PDF (redirected xxx"). This is the same printer, but redirected through and usable into the RDP session

The print workflow is as following:
Using the Myrtille PDF redirected printer:
https://user-images.githubusercontent.com/17749498/93713378-c2fa4a00-fb5b-11ea-8aa9-47dfb6c13fc1.png image
The print job into the remote session:
https://user-images.githubusercontent.com/17749498/93713383-d2799300-fb5b-11ea-990d-bd1129797424.png image
The print job on the Myrtille gateway:
https://user-images.githubusercontent.com/17749498/93713411-f63cd900-fb5b-11ea-8479-1aa8bc04b3b7.png image
The print job into the browser:
https://user-images.githubusercontent.com/17749498/93713431-23898700-fb5c-11ea-82cf-58575e4b44c8.png image
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/cedrozor/myrtille/issues/213#issuecomment-695793468 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AMEBRSUIDDMHDGUHKJQW2I3SGYGNFANCNFSM4LGOWF2A .  https://github.com/notifications/beacon/AMEBRSRBCM7L2RSA5DLX6XDSGYGNFA5CNFSM4LGOWF2KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOFF4POPA.gif


skip over "queries" blocks when processing database-level metadata items

Before metadata that looked like:
databases:
  legislators:
    tables:
      offices:
        summary: office address or sumtin
    queries:
      millenntial_represetatives:
        summary: Social media accounts for current legislators

Would error with:

That's because when processing databases.legislators items, we skip over tables but not queries. We "skip" them because we processing them separately as "table-level" metadata items.
Don't merge yet, want to test this more. Shouldn't we also have a block to process queries separately too?

📚 Documentation preview 📚: https://datasette--2386.org.readthedocs.build/en/2386/

We need a test for this. Do we need to do anything else before we land it?


Nits in IntegerOverflowError and RestrictedExprError

Description of changes

Added doc strings & made minimal changes to the error messages in IntegerOverflowError.
Added a new field to RestrictedExprError::InvalidRestrictedExpression that records the (sub-)expression that is the source of the error. I believe this is a non-breaking change because RestrictedExprError is never directly pub used in cedar-policy, so the structure of the the variants shouldn't be visible to external users. Also made minor tweaks to comments and error messages.

Issue #, if available
Checklist for requesting a review
The change in this PR is (choose one, and delete the other options):

[X] A change "invisible" to users (e.g., documentation, changes to "internal" crates like cedar-policy-core, cedar-validator, etc.)

I confirm that this PR (choose one, and delete the other options):

[X] Does not update the CHANGELOG because my change does not significantly impact released code.

I confirm that cedar-spec (choose one, and delete the other options):

[X] Does not require updates because my change does not impact the Cedar Dafny model or DRT infrastructure.

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

Downstream build failure is due to #235, not this PR


Resource reference on Span

Do we need an explicit resource reference on Span?

I think all the Spans started from a given Tracer belong to the same Resource as the Tracer.

One minor issue here that we need to decide how to address is, let's say we have integration that collects HTTP client spans from multi-tenant app (multiple apps in a single process). That we need to inject proper tracer there somehow. It may be more natural in those cases take resource from the current context or somehting...
I'm not sure how important this right now. We can always get back to it later. Closing in favor of #84


Don't attempt to resolve OIDC config when OIDC is disabled

This PR addresses an issue where Alpine's OidcConfigurationResolver would attempt to resolve an OpenID Connect configuration, even though alpine.oidc.enabled was false.

Awesome - thank you.


factorio: 1.1.91 -> 1.1.92

https://wiki.factorio.com/Version_history/1.1.0#1.1.92
Description of changes

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

Technically this is factorio-experimental but also I don't care that much


Why doesn't 'git fat pull' run 'git fat init'?

init just calls configure internally.  init was kept as a convenience method for api compatibility, but configure is actually called for every git-fat operation.
https://github.com/cyaninc/git-fat/blob/develop/git_fat/git_fat.py#L467
Lemme know if there's some odd behavior in particular that you're seeing and I can take a look.

Oops, I think I was remembering this being an issue on the jedibrown version, as I vaguely remember always having to run git  fat init before doing git fat pull. I didn't realize it had been fixed on this fork :) Thanks for the clarification.


Add Rajat to Contributors List

@Rajat16nov, I'm quite elated about your PR. I wanna evolve this project to addresses various problems faced by first-time contributors. I'd love to learn about your journey in open source community, the problems, pain points you had etc.
Could you explain how you felt when you went through the tutorial, made a PR and learned that I merged it?


Login Static Mail

Send automatic mail to static mail without notifying logged in user to inform admin user

Added in


Add an option to download contracts from Pact Broker

We can plug in downloading the contracts via the Pact Broker. Here we have an example of how to override stub downloading https://github.com/spring-cloud/spring-cloud-contract/blob/master/tests/spring-cloud-contract-stub-runner-moco/src/test/groovy/org/springframework/cloud/contract/stubrunner/provider/moco/ClasspathStubProvider.groovy and here is the Pact Loader https://github.com/DiUS/pact-jvm/blob/master/pact-jvm-provider-junit/src/main/java/au/com/dius/pact/provider/junit/loader/PactBrokerLoader.java#L53

There are some docs on how to run it
https://github.com/bethesque/pact_broker#to-have-a-play-around-on-your-local-machine
docker would probably be a more reproducible option
there’s a docker example here, but it assumes postgres, and you probably want sqlite/h2 or something https://github.com/DiUS/pact_broker-docker
via @Fitzoh

Here's a simple example dockerfile I've been using locally:
https://github.com/Fitzoh/pact_broker/commit/cb9c9bac708911a8713365e2edc43e9727890bb3


Localization How to

Hey, @igorkulman it took me a while to decide if I wanted the localization info in the Wiki or in the readme. I've decided to move the Localization to the wiki and reference the wiki page in the Readme :)


FAD-5473 added initial rendered and related metrics

Moved from: https://github.com/SparkPost/sparkpost-api-documentation-DEV/pull/323

@gwalls @beardyman any reason we shouldn't merge this in?


bind: 9.16.16 -> 9.16.25

Motivation for this change
Fixes CVE-2021-25219.
https://downloads.isc.org/isc/bind9/9.16.25/doc/arm/html/notes.html
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.


Add an ingest step to the complete workflow that uses mediainfo and mediaconvert to better prepare videos for processing

Include support for all the media types supported by Media Convert. Currently the front-end only supports jpg and mp4.
Also, show an alert in the browser when a user tried to upload a non-supported media type. Currently those alerts only go to the javascript console.

Note that even uploading a jpg generated an error.

Also take into account that a statically defined list of supported file types are enforced in each operator. e.g. Search for file_type under source/operators/

Just a note that it looks like the CompleteWorkflow we currently have is missing the MediaConvert step that was used to split audio and create a proxy encode (to mp4) that we would rely on for this to work.

Actually,  looking again at the CompleteWorkflow, MediaConvert is being run, but it's done parallel to Rekognition.  It should be moved up to a preceding stage to convert inputs to mp4, if needed (proxy encode).

I recommend that MIE reflect the input codecs supported by Rekognition, namely MPEG-4, MOV, JPG, and PNG. I also recommend checking input file extensions on the front-end so users don't have to troubleshoot via step functions and lambda logs when they upload an unsupported file format.

We need to be using MediaConvert to generate a video proxy with a codec, resolution, and other properties that can be held constant so all downstream operators can get a known input. That video proxy encode needs to happen in step 2, so that's used as the input to all the analysis stages.
Mediainfo needs to be stage 1 (and MediaConvert should be stage2), and it needs to tell if audio is present. Mediainfo tells you how many audio tracks, their codecs, language, etc. If audio is present then MediaConvert should also do noise level analysis on audio, and store that output as metadata. This should be done in the same stage 1 job because MediaConvert won't charge for it if it's already part of an existing job. (They charge per job, but you can put as much stuff in a job as you want).
For reference, look at the mediainfo job used in Media2Cloud.

Mediainfo not needed for the proxy encode, but it has been added anyway to address https://github.com/awslabs/aws-media-insights-engine/issues/138.
Proxy encode has been added to the thumbnail operator. Rekognition operators have been updated to input the proxy encoded video instead of the user uploaded video. Now, the complete workflow will work for many more video formats besides .mp4.  I've tested quicktime (.MOV) and GoPro (.MKV) video files.


Love spot effect not showing, After export video from VideoExportInfo

black screen showing at place of love spot effect

You can record a screen or send the exported video

@komal8050 is this working for you now?? Am also getting the same after adding arcore support to sample app, I just added 3d object to the camera and started the screen recorder, 3d I got it working but love spot is black now in exported video, @wlanjie any guidance please where I am doing wrong.


use UTC time

I think it would be best-practice to use UTC time explicitly as the dex codebase does:
https://github.com/dexidp/dex/search?q=UTC&unscoped_q=UTC
Otherwise the code will just use whatever timezone the server is using.
I hit this when using a dex setup with a local client and this auth service running in the server. The server was on UTC and my local wasn't. So tokens generated on my local were rejected by the server, which was doing a check on when it was issued and thinking it was being used before it was even issued. It is a fringe use-case and we were able to address it by changing the local to use UTC. But it highlights why making UTC explicit might be a better practice.

Indeed! I've never run into this since I'm usually always on UTC in all my machines, but definitely a good thing to have as default. Will look into it, thank you!


cannot run code in playground

I am getting this error when I try to run the default code on the interface:
"build cache is required, but could not be located: GOCACHE is not defined and $HOME is not defined"
even though my GOCACHE and GOPATH are defined.

I haven't looked or used this code  in a while.
If I have time in future, I'll take a look and let you know.


Document AA .byKeyValue().

Needed by: https://github.com/D-Programming-Language/druntime/pull/1070

There is no delegate involved, can you please fix that?

How about a two-liner for the changelog?

Fixed, I had just copied the wording from byKey and byValue but obviously they are out of date.

@MartinNowak What exactly needs to be done in changelog.d? I'm unsure where things should go, esp. since the dates there are no later than 2012.

LGTM

@quickfur: You're looking at changelog.d instead of changelog.dd.
I don't know why we keep these confusing names, I would at least rename the old one to old-changelog.d or something. Several people tripped on this before.

Thanks!

https://github.com/D-Programming-Language/dlang.org/pull/744

Changelog update: https://github.com/D-Programming-Language/dlang.org/pull/745


VideoView: detect rendering / freeze

Useful for developers to update UI when frames are not arriving in bad network etc.
Currently there's no way to know if frames are arriving / rendering.
I think @figelwump was suggesting this feature.
Now, (no render) freeze detection is hardcoded to 2.0 seconds.
Example showing a spinner with bad network:
https://user-images.githubusercontent.com/548776/169492532-2eb7397f-e2ca-490f-9458-34a5227e5d5c.mov

I think I need to move a few events from TrackDelegate to VideoViewDelegate.


Add timestamps class

This pull request will implement #57.

@tkarabela You may wanna see what I added in my branch Add-timestamps-class-v2


Markdown headers don't render

Type: Bug
Hello,
This issue is temperamental and involves headers not being rendered larger than regular text in a markdown document when hashtags are used to define them (with a space in between the hashtag and text). Furthermore, the hashtags that define the header are themselves rendered.
This doesn't always happen (sometimes the headers are rendered as normal), but the vast majority of times the headers are not rendered. The headers are being recognised (the text turns blue) but they are not displaying properly. This issue persists after restarting VS Code, reinstalling VS Code and disabling all extensions.
Screenshots illustrating the bug:

VS Code version: Code 1.84.0 (Universal) (d037ac076cee195194f93ce6fe2bdfe2969cc82d, 2023-11-01T11:30:19.406Z)
OS version: Darwin arm64 22.4.0
Modes:

System Info

Item
Value

CPUs
Apple M1 (8 x 24)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: enabled_ondirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: enabled

Load (avg)
2, 2, 2

Memory (System)
8.00GB (0.06GB free)

Process Argv
--crash-reporter-id 6672976a-ac16-4e73-aaf4-12181690a40f

Screen Reader
no

VM
0%

Extensions (7)

Extension
Author (truncated)
Version

python
ms-
2023.20.0

vscode-pylance
ms-
2023.11.10

jupyter
ms-
2023.10.1003070148

jupyter-keymap
ms-
1.1.2

jupyter-renderers
ms-
1.0.17

vscode-jupyter-cell-tags
ms-
0.1.8

vscode-jupyter-slideshow
ms-
0.1.5

A/B Experiments
vsliv368cf:30146710
vsreu685:30147344
python383cf:30185419
vspor879:30202332
vspor708:30202333
vspor363:30204092
vslsvsres303:30308271
vserr242:30382549
pythontb:30283811
vsjup518:30340749
pythonptprofiler:30281270
vshan820:30294714
vstes263:30335439
vscorecescf:30445987
vscod805cf:30301675
binariesv615:30325510
bridge0708:30335490
bridge0723:30353136
vsaa593:30376534
pythonvs932:30410667
py29gd2263:30880072
vsclangdc:30486549
c4g48928:30535728
dsvsc012cf:30540253
pynewext54:30695312
azure-dev_surveyone:30548225
2e4cg342:30602488
89544117:30613380
a9j8j154:30646983
showlangstatbar:30737416
03d35959:30757346
pythonfmttext:30731395
fixshowwlkth:30771522
showindicator:30805244
pythongtdpath:30769146
i26e3531:30792625
pythonnosmt12:30797651
pythonidxpt:30866567
pythonnoceb:30805159
synctok:30869157
dsvsc013:30795093
dsvsc014:30804076
dsvsc015:30845448
pythontestfixtcf:30871695
pythonregdiag2:30871582
pythonmypyd1:30879173
pythoncet00cf:30874137
pythontbext0:30879054

Can you please share some markdown text which causes this issue. I'm not able to reproduce it right now

Thank you for your reply.
Some markdown text that caused the bug is the following:
# Header
Header
## Subheader
(a .md file with this text is attached)
testcode.md
Aside: I have discovered that rendering the #'s (by writing just # on the line) and then going back in to add text reliably produces headings. This is an annoying workaround though and does not address the underlying issue.

Thanks. This is because there's a non breaking space between the # and the header text
This is the expected behavior for commonmark
Replacing it with a real space will fix the issue

Thanks very much for your help mjbvz.


withStyle helper method

Let's say you want a red button. What would be the most straight forward way you can think of?
What about:
const Tomato = Button.withStyle({backgroundColor: 'tomato'})

It feels so natural, reads like English and does exactly what it says.
OK, you've got a boring tomato, let's make it more interesting:
const HoverableTomato = Tomato.withStyle({'&:hover': {color: 'goldenrod'}})

Exactly the same method as before. Finally one simple and obvious way of doing things.
You think it's too good to be true? It's here! Check it out on codesandbox.io
Styling in this way feels so good. :)

You can use the glamorous "factory factory" function
const Tomato = glamorous(Button)({backgroundColor: 'tomato'})

const HoverableTomato = glamorous(Tomato)({'&:hover': {color: 'goldenrod'}})

And continue the HOC-inception 😃
I do like the idea of withStyle though as a convenient way to accomplish the same thing

It's all about user convenience.
Why somebody would want to use this library? To improve their styling workflow.
What is a user is welcomed with? 17-page-long documentation.
I can imagine somebody looking at the docs and running away to their crappy but familiar workflow. "I just wanted add some styles, not get phd in computer science. Thankyouverymuch"
Let's get out of user's way as much as possible. Let them do the thing their want in as much straight-forward way there is.
Do you want an html element with some styles? Here you go: HtmlElement.withStyle(someCssRules)
There's no mental translation needed. What you want is what you write. And inheriting from custom components is done in the same way - one thing less to learn and remember which converts to more time spent on actual work.

Reasoning behind this change
Interoperability
When you use current api, you have to keep in mind whether you're working with a componentFactory or Component. If you try to use componentFactory in jsx or try to style Component your application blows up.
With new api, when you import a built-in component
import { Div } from 'glamorous'

You can use it directly in jsx

Hello

Style it in jsx

Hello

Style it in js to benefit from reusability and inheritance
const WhiteDiv = Div.withStyle({color: 'white'})

The user don't have to care about componentFactory/Component differences anymore. The library handles it internally for them.
Readability (aka clear intention)
When you ask somebody who never heard of glamorous what this code does:
const Primary = glamorous.div({color: 'tomato'})

the respondent would probably be confused.
What about this:
const Primary = Div.withStyle({color: 'tomato'})

Primary is a div with style that sets its color to tomato?
invisibility === success
When you look at successful libraries, one thing that is quite common is that those libraries try to be as much out of sight as possible - users don't want to type a library name a hundred times.
When you use lodash, it hides behind _, jQuery uses $. mocha gives users just the things they care about: describe and it methods. Glamorous is an awesome name, but it should be used only once per file - in import statement.
Improved maintability
When we only expose the Component api with withStyle helper we would be able to simplify codebase which means less overhead with maintaining the library. As a user I don't care about ten ways of doing the same thing - I'd love to have one consistent, convenient and predictable way.

I have thoughts about this and will share them when I have more time. Thanks 😀

@marzelin I totally get the motivation, thanks for writing up an explanation of your thoughts!
I'm curious to hear @kentcdodds's thinking as well. There's similar APIs being discussed in https://github.com/paypal/glamorous/issues/133 and we'll want to make sure these coincide together nicely.

Hey @marzelin,
Thank you very much for sharing your thoughts and arguments. I can appreciate your perspective and understand what you mean about the API being a bit more straightforward. The trade-off of doing something like this is that now there's two ways to do the same thing:
const MyComponent = (...props) =>

const MyStyledComponent = glamorous(MyComponent)({})

// these two are the exact same
const MyStyledComponentWithStyles = glamorous(MyStyledComponentWithStyles)({})
const MyStyledComponentWithStyles2 = MyStyledComponent.withStyles({})

The problem is that if folks learn the .withStyles API, then when they want to style a component that wasn't created by glamorous they'll not know how to accomplish that.
However, if folks learn the glamorous API, they know how to style a glamorous component or one that wasn't created by glamorous. It's pretty straightforward.
Does that make sense? So I'm leaning toward not implementing this.

I'm starting to think this might be good actually... Still thinking it over. I'd be willing to look at a pull request I think.

You can wrap any component in glamorous() but it only work if the component properly uses className that is passed to it. If it doesn't you get no error but your code doesn't work as expected. Good luck with debugging.
Let's say you have this line in your project
const StyledPosts = glamorous(Posts)

And your coworker changes Posts component in a way that prevents styles from being propagated in a desired way. They gets no error whatsoever. Unless you have robust tests you're in trouble.
Also this is against the convention:
<Container_Component>
    <Presientational_Component/>
</Container_Component>

You want containers to wrap around presentationals, not the other way around.
Friends don't let friends style non-glamorous components because it's a possible source of bugs, so please don't do it :)
To sum up: I find errors on trying to style non-glamorous components really helpful.
It makes me think of a better way of doing what I want to implement and if I don't find one, to double-check if the component uses className correctly and provide proper info for anyone who would try to change it.

What are you suggesting @marzelin? That we somehow log an error if the provided className is not used correctly? I'm not sure that's possible 🤔

@kentcdodds I suggest stop using things that are not 100% reliable if there's a better alternative.

As discussed here: https://github.com/paypal/glamorous/issues/133#issuecomment-304524601 maybe it would be better for us to make this be out of band.

I suggest stop using things that are not 100% reliable if there's a better alternative.

What do you mean? What are you suggesting we change? Also, I should say that I really want to avoid being dogmatic about anything in the docs. We can suggest things and mention trade-offs/foot guns/etc. But I really don't want to tell people that they should never do one thing or another.

I think glamorous() function is unsafe to use because it fails silently when a component doesn't handle className properly. I'd deprecate it to save people from rare but nasty bugs. But if there will be a warning that glamorous() function is super convenient but can bite you in the neck if you're not cautious I'm okay with that.
I'm ok with moving withStyle to a separate helper but only if it will be able to check if a passed component is a GlamorousComponent an throws and error if not.
But for me
Div.withStyle({color: 'AntiqueWhite'})

looks much cooler than
withStyle(Div, 'AntiqueWhite')

Another big win of withStyle as a method is that if I import a component and want to change its style a bit, I wouldn't have to import glamorous to that file just for that - .withStyle will work out of the box.
Importing react in every file where jsx is present sooo annoying :angry:

I have rather conservative opinion about this. I think that when there are two things in a library that are doing pretty much the same thing, it causes more confusion, especially to people, who don't know the library good enough 🙁.

That's a valid point.
The question is which api do you prefer:
Current, familiar but failing silently in some cases:
onst Tomato = glamorous(Button)({backgroundColor: 'tomato'})

Or this
const Tomato = Button.withStyle({backgroundColor: 'tomato'})

that behaves consistently: either work or let you know that something is wrong.
Changing primary function would be a brave decision but could give us a serious advantage over styled-components that share this weakness: glamorous will be reliable, styled-components are not.

Still not at the keyboard, but I just have to say that there's no way we'll be deprecating the existing functionality of the glamorous function. I'll justify that decision when I have more time later.

Current, familiar but failing silently in some cases

Yes, it will fail silently in some cases. To be specific, if you don't apply the className to the underlying rendered element. However, there are many use cases in which we cannot force folks to apply the className and it's impossible to ensure that they do. And we wouldn't want to warn if they don't because it could be that the element is not rendered at all for a good reason. In addition, the className could be applied to any element (by design), not just the root element of the component. So it's not reasonable/possible/correct for us to force folks to apply the className.
Another reason that we'll not be deprecating the capabilities of the glamorous function is because one use case that we really want to support is the ability to style a third party component. For example, I use the svg-inline-react component and use glamorous to style that. This is a very common use case and is only possible because of the glamorous API.

Another big win of withStyle as a method is that if I import a component and want to change its style a bit, I wouldn't have to import glamorous to the file just for that - .withStyle will work out of the box.
Importing react into every file where jsx is present sooo annoying 😠

I personally prefer the explicitness and this is not actually a drawback of the glamorous function to me, but a feature.
Another drawback of the withStyle function being dangled on a glamorous component is that you're never certain whether what you're importing is a glamorous component or not (and whether it supports the special APIs of glamorous). I've noticed this as I've been using glamorous. It's already a bit of a frustration for me to know whether I can use the css prop on a component. I can't know without looking at the implementation. It'd prefer to just use glamorous on the component and not worry about it at all.
I think that the className forwarding requirement is something we'll have to live with and document well (note #112).
I'm going to go ahead and close this, but as always with OSS, I can be convinced otherwise and we could reopen in the future.

Yeah, there's not enough enthusiasm that would justify introducing this change anyway (and nobody shared my excitement :cry:). I'm considering forking this project to give people like myself an alternative api. Would you mind If I do this?

I wonder if we could make a plugin system that would allow you to create a plugin for it and not have to fork the project (and community). This would also allow us to try things out before including them in the library officially. Could you open an issue about that and we can discuss what that would look like?


Add in-app support - FAQ & chat

Problem statement
Users need a way to get support - to get their questions answered.
Proposed work
Integrate Elevio for FAQs and Smooch.io (Sunshine Conversations) for chat with TIKI's app.

#162


clean up for Helm charts

@thatsk Please leave a comment on goharbor/harbor#6654. For tagd, I'm not planning on adding any more major features as the plan is to move this functionality into harbor itself, but I would consider reviewing a pull request.

Harbor 1.9 now includes a native tag retention feature, so I'm not currently planning on adding new features to tagd. Please open an issue on the Harbor project if you're looking for additional retention features.


Some plunkers are broken on the docs site

Bug, feature request, or proposal:
Bug
What is the current behavior?
Pages:
https://material.angular.io/components/icon/examples
https://material.angular.io/components/list/overview
https://material.angular.io/components/snack-bar/examples
What are the steps to reproduce?
Just click and open console. There are some missing files.

A new version of material.angular.io was pushed recently.  Try clearing the cache and cookies on your browser and see if the issue continues.

The errors being thrown are due to missing plunker files; might be related to the local asset copy script not copying the plunker assets

Fixed by #6990


Add notice field to modules

Modules should get a optional notice field that can only be set manually by us. The type of this field should be string or undefined, and should not be changeable by webhooks. It should be initially unset. The field should be present in the /modules/:name api response.
This field will be used to display notices about a certain module on the deno.land/x website, for example that instead of using https://deno.land/x/istrue, you should use value === true.

I understand the impulse, I really do, but I'm hesitant to implement this -- the notice field would be applied arbitrarily by the maintainers of the registry, thus making making a judgement call on what a "good module" constitutes. If the notice was based on an objective and measurable metric I'd be much more inclined to support it (maybe sloc? number of files?)

#57 May fix this


http authorization required

As already decribed in the JPF google group (https://groups.google.com/forum/#!topic/java-pathfinder/lABLeGYc4pw) the vagrant file stopped working due to authorization issues while cloning the jpf-core dependency.

@mmuesly, it should be working now.


Balance/Spread Grid not working in FastWorkbench

The Balance/Spread Grid buttons do nothing in a Crafting Table from the FastWorkbench mod.
Clear and Rotate work just fine.
Version

CraftingTweaks_1.14.4-10.1.4

Does it work with FastWorkbench-1.14.4-2.1.3.jar?
Duplicate of #127

Sorry about that. No it does not. Closing as duplicate.


v-for of meshes doesn't add new instances to scene

Describe the bug
 <TresMesh
      v-for="(player, key) in players"
      :key="key"
      :scale="1"
      cast-shadow
      :position="[player.x, player.y, player.z]"
    >
      <TresBoxGeometry :args="[1, 1, 1]" />
      <TresMeshNormalMaterial />
    </TresMesh>

If players increase size (new player) is not being added to the scene
Reproduction
https://stackblitz.com/edit/node-7ddska?file=src%2Fviews%2FHomeView.vue
Steps to reproduce
Hit key "R", you will see the list on top increase but not the amount of boxes
System Info
System:
    OS: Linux 5.0 undefined
    CPU: (2) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
    Memory: 0 Bytes / 0 Bytes
    Shell: 1.0 - /bin/jsh
  Binaries:
    Node: 16.14.2 - /usr/local/bin/node
    Yarn: 1.22.19 - /usr/local/bin/yarn
    npm: 9.4.2 - /usr/local/bin/npm
  npmPackages:
    @tresjs/cientos: ^2.0.0 => 2.0.0
    @tresjs/core: ^2.0.0 => 2.0.0

### Used Package Manager

npm

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/Tresjs/tres/blob/main/CODE_OF_CONDUCT.md)
- [X] Read the [Contributing Guidelines](https://github.com/Tresjs/tres/blob/main/CONTRIBUTING.md).
- [X] Read the [docs](https://tresjs.org/guide).
- [X] Check that there isn't [already an issue](https://github.com/tresjs/tres/issues) that reports the same bug to avoid creating a duplicate.
- [X] The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.

`<TresMesh
v-for="object in props.meshesInfo"
:key="object.id"
:position="object.position"
v-bind="object.mesh"
@click="testClick"

`
In this way, only one can be added


Key modifiers

This PR makes Keyboard ModifiersState accessible from key, tap and drag View modifiers. ModifiersState is stored now in Context and not part of EventKind::Key anymore. I hope that makes sense. An example key_mods.rs is added. I modified the Button view so it does not pass ModifiersState to its closure and (and therefore works as before).

Thanks!!


Long multipart/form-data POST timing out after 8~10 minutes (while app is in background).

Hi,
Desc: Large POST multipart while app is in background times out after 8~10 minutes.
This isn't necessarily an issue for most, but my specific need was to post large files as multipart formdata.
I wanted to have the post request continue for over 20 minutes (arbitrary long time) while the app was in the background instead of timing out.
iOS: Issue was, dataTaskWithRequest  was timing out after 8~10 minutes. Switching to uploadTaskWithRequest:fromFile: made it live until finish.
I've a fork with the change in https://github.com/pkwak-sf/react-native-fetch-blob/tree/0.10.0_rn0.36.0
It also has a change for the same request in Android to run over IntentService (using a flag in config). Original purpose was to mimic downloadmanager (but for uploads), but my requirement didn't need the request to continue when app was manually closed. So instead of Service, left IntentService.
The changes in the fork are very specific to my requirements. Don't know if it would be beneficial to put back into the lib, but wanted to let you know what the issue was and how it resolved. If you want to pull it in, I'm more than happy to update/fix things to make that happen.
Thanks,

@pkwak-sf , Thanks for the detailed information and explanations.
I think it's a really common scenario and I've also tried to add such mechanism to this library, but I was not sure if it's able to keep existing features work properly during app state changes (especially on Android) so I just stopped.
It'd be great to integrated it into this library even with some limitation, if you'd like to do it please make PR to v0.11.0 branch 👍

@wkh237 Thanks.
I've opened #202 .


add ability to disable the TUI from variable environment

Feature Request
I would love to be able to disable the TUI using an environment variable because I use process compose along with devbox (which integrate the tool in their solution) but from the devbox cli i can't disable the TUI and i would like to be able to because that would allow us to copy/paste from the terminal (without the copy/selection issue #116 )
Use Case:
when unable to copy from the TUI
Proposed Change:
pass an environment variable like PROCESS_COMPOSE_TUI=0
Who Benefits From The Change(s)?
devbox users mostly
Alternative Approaches

Hi @Sail0rd
It's possible to disable TUI with PC_DISABLE_TUI=1 env variable.


Download font's that are loaded externally.

When fonts are declared inline or in a style tag, will i need to process them?  And is it possible that the urls will be relative?


Update create-function.md to add a note (hint).

The ; at the end of a create function statement will cause a parsing failure. So I added a hint for this issue.

@UncooleBen : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@UncooleBen thanks for your contribution. This information is relevant to all commands. I will look for an alternative location to place this info. I am closing this PR


Github-like contribution chart in markdown dairy

Smth like

Component candidate - https://github.com/grubersjoe/react-activity-calendar


replay: work with rust streams instead of event iterators

This patch makes the Replay operator accept a list of streams rather than a list of event iterators. The streams are consumed with a sync activator wrapper in a Waker in order to re-schedule the operator automatically when new data becomes available.

Thanks! Can you say more about why this should land? It seems to be strictly worse for EventIterator types that can produced references and do not need to clone their contents. Am I missing something there?

The reason for the async stream part is based on the assumption that most of the time when you replay a stream you're getting it from the network and presumably you're using something like tokio (may or may not be true).
On the cloning, I noticed that the current implementation clones both of its arguments unconditionally https://github.com/TimelyDataflow/timely-dataflow/blob/master/timely/src/dataflow/operators/capture/replay.rs#L96-L99 which is why I thought it's ok to make it receive owned items. It is not 100% the same, as the previous version cloned all the Ds and this one clones the vector itself, but if you think the previous behaviour should be kept I can make a ReplayAsync version of the trait that works over async streams


modify current python files and add new angry subclass for smiley

pull request, merging feature branch to main branch
modify current python files and add new angry subclass for smiley

Wrong repo. closing this pull request


Use await keyword in our asynchronous operation to prevent deadlocks

Fixes #775

Made these changes in PR #767 to avoid having to deal with merge conflicts twice.


Cloudflare Tunnels support

@BojanZelic what you think about the idea of adding Cloudflare Tunnels support?

I hadn't considered it; In my simple use-case I run a cloudflare tunnel that points to a single ingress; Then the ingress does the routing to my service instead of the tunnel; I'm open to it suggestions if you have any;
There are also several other operators with tunnel support:

https://github.com/adyanth/cloudflare-operator
https://github.com/beezlabs-org/cloudflare-tunnel-operator

Thanks for the operator for managing Zero Trust Applications along with their policies. I have tested most CRDs and they seem to work pretty well for me!
I am not sure if this is what @asychev had initially in mind but this project looks like a better match for providing support for tunneled applications which are managed by the Zero Trust dashboard (and not through the cloudflared daemons with configmaps which is what the linked operators focus on). This way cloudflared would just pull origin's configuration (like k8s service urls, originRequest settings and so on) from the Cloudflare Zero Trust dashboard and everything would be bootstrapped from a single operator in Cloudflare.


SDM update from 8.6 to 9.x breaks dns config

Hello, I'd first like to say I'm really enjoying SDM and have been using it since ~April to further update some of my homelab Ansible automation, mainly with a Debian Bookworm image from https://raspi.debian.net/. Unfortunately, with updates from 8.6 to a 9.x branch, a few things that were previously functional have broken.
Before 9.x, it looks like /etc/resolv.conf was taken by default from the host. Now it is not populated, resulting in no updates / app installation possible, unless you copy it in in a phase0 plugin.
SDM 8.6 customizing Debian12

sudo sdm --customize --apt-dist-upgrade --nopassword 20230612_raspi_3_bookworm.img

* Mount IMG '20230612_raspi_3_bookworm.img'
mount: /dev/loop0p2 mounted on /mnt/sdm.
mount: /dev/loop0p1 mounted on /mnt/sdm/boot.
chmod: cannot access '/mnt/sdm//usr/local/sdm/local-plugins/*': No such file or directory
* Start Configuration
> Command Line: /usr/local/bin/sdm --customize --apt-dist-upgrade --nopassword
  20230612_raspi_3_bookworm.img
* Host Information
   Hostname: overseer
   uname: Linux overseer 6.1.0-12-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.52-1 (2023-09-07)
  x86_64 GNU/Linux
   os-release Name: "Debian GNU/Linux"
   os-release Version: "12 (bookworm)"
   sdm Version: V8.6
* IMG Information
   Date:
   RasPiOS Version: 12
   os-release Version: "12 (bookworm)"
% No username specified with the --user switch; Using 'pi'
% sdm will try to use systemd-nspawn on this 'x86-64' system
  If this does not work please post a GitHub issue
> IMG '20230612_raspi_3_bookworm.img' has 1074480 1K-blocks free
> Copy sdm to /usr/local/sdm in the IMG
* Start Phase 0 image customization
*+Phase 0 sdm configuration
*+Phase 0 Network configuration
*+Phase 0 User configuration
*+Phase 0 System configuration
*+Phase 0 Raspberry Pi-specific configuration
> Create user 'pi' home directory /home/pi
* Phase 0 Completed
* Enter image '20230612_raspi_3_bookworm.img' for Phase 1
* Start Phase 1 image customization
> IMG '20230612_raspi_3_bookworm.img' has 1074460 1K-blocks free at start of Phase 1 image customization
*+Phase 1 sdm configuration
> Configure and enable sdm FirstBoot service (sdm-firstboot)
*+Phase 1 Network/WiFi/Bluetooth configuration
> Enable SSH service via /boot/ssh
*+Phase 1 User configuration
> Add user 'pi'
usermod: group 'spi' does not exist
usermod: group 'i2c' does not exist
usermod: group 'gpio' does not exist
> Set /home/pi files ownership to 'pi:pi'
> Add user 'pi' to sudoers.d
/usr/local/sdm/sdm-phase1: line 244: /etc/sudoers.d/010_pi-nopasswd: No such file or directory
chmod: cannot access '/etc/sudoers.d/010_pi-nopasswd': No such file or directory
> Skip password processing per --nopassword
*+Phase 1 System and Boot Configuration
> System journal configuration not modified
> Start 'apt update'
> IMG '20230612_raspi_3_bookworm.img' has 1074436 1K-blocks free at start of 'apt update'
> IMG '20230612_raspi_3_bookworm.img' has 916144 1K-blocks free at end of 'apt update'
* Phase 1 post-app installation/configuration
> Start 'apt dist-upgrade'
> IMG '20230612_raspi_3_bookworm.img' has 916144 1K-blocks free at start of 'apt dist-upgrade'
> IMG '20230612_raspi_3_bookworm.img' has 510040 1K-blocks free at end of 'apt dist-upgrade'
> Start 'apt autoremove'
> IMG '20230612_raspi_3_bookworm.img' has 510040 1K-blocks free at start of 'apt autoremove'
> IMG '20230612_raspi_3_bookworm.img' has 510040 1K-blocks free at end of 'apt autoremove'
> IMG '20230612_raspi_3_bookworm.img' has 510040 1K-blocks free at end of Phase 1 image customization
* Phase 1 Completed
> IMG '20230612_raspi_3_bookworm.img' has 510040 1K-blocks free at end of image customization
* Enter Shell Command Prompt
> 'exit' to exit back to host system
root@sdm:/# cat /etc/resolv.conf
# Generated by NetworkManager
search lan
nameserver <IP_ADDRESS>
nameserver <IP_ADDRESS>
root@sdm:/#
exit
* Customization complete
umount: /mnt/sdm/boot unmounted
umount: /mnt/sdm unmounted

SDM 9.3 customizing Debian12

sudo sdm --customize --apt-dist-upgrade 20230612_raspi_3_bookworm.img

* Mount IMG '20230612_raspi_3_bookworm.img'
mount: /dev/loop0p2 mounted on /mnt/sdm.
mount: /dev/loop0p1 mounted on /mnt/sdm/boot.
* Start Configuration
> Command Line: /usr/local/bin/sdm --customize --apt-dist-upgrade
  20230612_raspi_3_bookworm.img
* Host Information
   Hostname: overseer
   uname: Linux overseer 6.1.0-12-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.52-1 (2023-09-07)
  x86_64 GNU/Linux
   os-release Name: "Debian GNU/Linux"
   os-release Version: "12 (bookworm)"
   sdm Version: V9.3
* IMG Information
   Name: 20230612_raspi_3_bookworm.img
   Date:
   RasPiOS Version: 12
   os-release Version: "12 (bookworm)"
% Configure chroot for sdm on your 'x86-64' computer
  * sdm will run more slowly due to qemu emulation
% No plugins are selected
> IMG '20230612_raspi_3_bookworm.img' has 1074524 1K-blocks (1.1GB, 1.0GiB) free
> Copy sdm to /usr/local/sdm in the IMG
* Start Phase 0 image customization
> No Plugins specified with --plugin
* Phase 0 Completed
* Enter image '20230612_raspi_3_bookworm.img' for Phase 1
* Start Phase 1 image customization
//usr/local/sdm/sdm-cparse: line 195: python3: command not found
//usr/local/sdm/sdm-cparse: line 196: python3: command not found
> IMG '20230612_raspi_3_bookworm.img' has 1064300 1K-blocks (GB, GiB) free at start of Phase 1 image customization
> Configure and enable sdm FirstBoot service (sdm-firstboot)
> Start 'apt update'
//usr/local/sdm/sdm-cparse: line 195: python3: command not found
//usr/local/sdm/sdm-cparse: line 196: python3: command not found
> IMG '20230612_raspi_3_bookworm.img' has 1064296 1K-blocks (GB, GiB) free at start of 'apt update'
//usr/local/sdm/sdm-cparse: line 195: python3: command not found
//usr/local/sdm/sdm-cparse: line 196: python3: command not found
> IMG '20230612_raspi_3_bookworm.img' has 1060912 1K-blocks (GB, GiB) free at end of 'apt update'
> No Plugins specified with --plugin
* Phase 1 post-app installation/configuration
> Start 'apt dist-upgrade'
//usr/local/sdm/sdm-cparse: line 195: python3: command not found
//usr/local/sdm/sdm-cparse: line 196: python3: command not found
> IMG '20230612_raspi_3_bookworm.img' has 1060912 1K-blocks (GB, GiB) free at start of 'apt dist-upgrade'
//usr/local/sdm/sdm-cparse: line 195: python3: command not found
//usr/local/sdm/sdm-cparse: line 196: python3: command not found
> IMG '20230612_raspi_3_bookworm.img' has 1060912 1K-blocks (GB, GiB) free at end of 'apt dist-upgrade'
> Start 'apt autoremove'
//usr/local/sdm/sdm-cparse: line 195: python3: command not found
//usr/local/sdm/sdm-cparse: line 196: python3: command not found
> IMG '20230612_raspi_3_bookworm.img' has 1060912 1K-blocks (GB, GiB) free at start of 'apt autoremove'
//usr/local/sdm/sdm-cparse: line 195: python3: command not found
//usr/local/sdm/sdm-cparse: line 196: python3: command not found
> IMG '20230612_raspi_3_bookworm.img' has 1060912 1K-blocks (GB, GiB) free at end of 'apt autoremove'
//usr/local/sdm/sdm-cparse: line 195: python3: command not found
//usr/local/sdm/sdm-cparse: line 196: python3: command not found
> IMG '20230612_raspi_3_bookworm.img' has 1060912 1K-blocks (GB, GiB) free at end of Phase 1 image customization
* Phase 1 Completed
> No Plugins specified with --plugin
> Run graphics post-install configuration
> Enable SSH
> Plugin phase1: Enable SSH service via /boot/ssh
//usr/local/sdm/sdm-cparse: line 195: python3: command not found
//usr/local/sdm/sdm-cparse: line 196: python3: command not found
> IMG '20230612_raspi_3_bookworm.img' has 1060912 1K-blocks (GB, GiB) free at end of image customization
* Enter Shell Command Prompt
  'exit' to exit back to host system
root@overseer:/# cat /etc/resolv.conf
cat: /etc/resolv.conf: No such file or directory
root@overseer:/#

I'm not surprised there are issues, since "Debian 12" != "RasPiOS Bookworm". One notable difference from your log: RasPiOS is delivered with Python preinstalled, whereas it appears to not be there on Debian 12. I would expect there to be a few others as well.
That said, with respect to /etc/resolv.conf, sdm never touches that file directly, but I'm mystified enough to have a look at it.

Thank you for the feedback. While there were a few warnings in L10n related settings, I had no other issues in customizing that Bookworm Debian image for 2-3months. I have noted pre-apt (where I install python3) is in getgbstr (and have submitted a PR for your review / feedback). My customization script (once reverted to account for flags -> plugins) still works on 8.6.
To my understanding, the problem lies in the (now) use of qemu instead of systemd-nspawm, but I haven't started digging into it enough to understand why.

8.6
% sdm will try to use systemd-nspawn on this 'x86-64' system
  If this does not work please post a GitHub issue
> IMG '20230612_raspi_3_bookworm.img' has 1074480 1K-blocks free
---
9.3
% Configure chroot for sdm on your 'x86-64' computer
  * sdm will run more slowly due to qemu emulation
% No plugins are selected
> IMG '20230612_raspi_3_bookworm.img' has 1074524 1K-blocks (1.1GB, 1.0GiB) free

Issue https://github.com/gitbls/sdm/issues/92 reported that a WSL Ubuntu 22.04 didn't work using systemd-nspawn. There's little win in chasing distro-level problems such as this when re-enabling chroot for all cross-architecture customizations (x86-64 host customizing aarch64) fixes the problem.
So, V9.x re-enables using chroot, which you've noted. It turns out that a bit of systemd-nspawn that I had missed is that it (by default) copies (or maybe mount --bind) the host's /etc/resolv.conf into the IMG. I was quite surprised when I did an sdm --explore on a virgin IMG and /etc/resolv.conf was exactly what was on the host's /etc/resolv.conf
A quick read of man systemd-nspawn reveals the --resolv-conf switch that is supposed to disable this behavior when provided an argument of off. My quick test before I had to run out indicates that it's a bit more complex than that, since the /etc/resolv.conf was still updated even with --resolv-conf off. While I was out on my errand it occurred to me that systemd-nspawn may try to do this unless networking is disabled in some way. I need to have a look into that. I don't want to disable it by default because I find that being able to scp from wiithin a systemd-nspawn is pretty handy.
Since there's no /etc/resolv.conf in the chroot scenario, it's pretty clear that chroot does not muck with /etc/resolv.conf and I imagine we'll find that NetworkManager updates resolv.conf as part of its boot-time startup. And I'm pretty sure that dhcpcd ran resolvconf at startup to configure it on dhcpcd-powered systems.
So, the resolution of resolv.conf missing in sdm via chroot is "by design". The only bummer is that under WSL, where chroot is used, you can't scp since resolv.conf isn't there.
I think the best solution is to give you control over whether to use systemd-nspawn or chroot, if you know it works on your WSL host (or maybe sdm can detect it and fall back to chroot?). More investigation required.
Did I miss anything?

To clarify, the host I am running this on is also a Debian12 (Bookworm) machine, there is no WSL involvement in my case. With no changes other than updating sdm from V8.6 to V9.3, it defaults from using systemd-nspawn to qemu.

I don't want to disable it by default because I find that being able to scp from wiithin a systemd-nspawn is pretty handy.

I have to say I'm not entirely understanding what you mean by that. I don't mean that the older version (using systemd-nspawn) using host's resolv.conf is an issue (as you naturally need some nameservers to be able to apt update / apt install).
Is it a case that the test/dev environment still defaults to systemd-nspawn (I guess in which case, why did my setup switch to qemu). Or that the test/dev environment has dns resolution (to be able to apt update / apt install) using qemu, with no further steps re: providing nameservers?

sdm can't tell whether the host is running in WSL or on bare metal. It CAN tell what the host OS architecture is, and yes, updating sdm changed the default because some older host OSen (either in WSL or bare metal) don't work with systemd-nspawn.
I don't know what you're asking about the test/dev environment.
I understand (now) that your concern about /etc/resolv.conf is that you want to use systemd-nspawn, and I said "I think the best solution is to give you control over whether to use systemd-nspawn or chroot, if you know it works on your WSL host (or maybe sdm can detect it and fall back to chroot?). More investigation required."
IOW I will look into re-enabling this in some manner for V9.4. More investigation required. Stay tuned.

think the best solution is to give you control over whether to use systemd-nspawn or chroot

Had forgotten to comment on that, sorry, yes that would be great. Though to reiterate, there is no WSL here, Just a Debian12 system being used to customize a Debian12 image.

yes, updating sdm changed the default because some older host OSen (either in WSL or bare metal) don't work with systemd-nspawn.

Thanks for confirming/clarifying. I take this to mean that any system would not be able to run apt update / install in an image, due to qemu now being default.

Thanks for confirming/clarifying. I take this to mean that any system would not be able to run apt update / install in an image, due to qemu now being default?

Yeh. I had tested sdm on an x86/64 but I reference my apt-cacher-ng by IP address so didn't have any problem. More research required.

Edit: Was able to revert to systemd-nspawn by following the opposite of #92 to disable chroot, to restore dns for updating image. Thank you for pointing that one out. :)

Great. I was going to mention that, glad you sorted that out.
I'll be looking at this over the next couple of days in between some "life stuff". Stay tuned.

V9.4 now uses systemd-nspawn by default. If that fails, --chroot should make it work. And chroot gets a /etc/resolv.conf so network naming is functional.


test_no_circular_references fails with Python 3.14

What happened:
Fedora is running some (very) early tests with upcoming Python 3.14. All Python packages in Fedora are continuously rebuilt against pre-releases of Python 3.14 to signal issues early. Below test failure popped up.
=================================== FAILURES ===================================
___________________ test_no_circular_references[testfile.nc] ___________________

tmp_local_or_remote_netcdf = '/tmp/pytest-of-mockbuild/pytest-0/test_no_circular_references_te0/testfile.nc'

    def test_no_circular_references(tmp_local_or_remote_netcdf):
        # https://github.com/h5py/h5py/issues/2019
        with h5netcdf.File(tmp_local_or_remote_netcdf, "w") as ds:
            ds.dimensions["x"] = 2
            ds.dimensions["y"] = 2

        gc.collect()
        with h5netcdf.File(tmp_local_or_remote_netcdf, "r") as ds:
            refs = gc.get_referrers(ds)
            for ref in refs:
                print(ref)
>           assert len(refs) == 1
E           assert 0 == 1
E            +  where 0 = len([])

h5netcdf/tests/test_h5netcdf.py:1551: AssertionError

Anything else we need to know?:
I browsed through the referenced h5py issue, but it didn't help me understand what might be the issue here. Neither did Python's changelog. h5py was rebuilt successfully in the same build environment.
Version
Output of print(h5py.version.info, f"\nh5netcdf {h5netcdf.__version__}")
Summary of the h5py configuration
h5py    3.12.1
HDF5    1.14.5
Python  3.14.0a3 (main, Dec 17 2024, 00:00:00) [GCC 14.2.1 20241104 (Red Hat 14.2.1-6)]
sys.platform    linux
sys.maxsize<PHONE_NUMBER>854775807
numpy   2.2.1
cython (built with) 3.0.11
numpy (built against) 2.2.0
HDF5 (built against) 1.14.5
h5netcdf 1.4.1

Thanks @penguinpee for bringing this to attention.
I've introduced tests for 3.13 over in #250 but no issues there. So it's really something with Python 3.14. If you have any idea how to setup a CI run with Python 3.14 prereleases please let me know.
@hmaarrfk Would you mind having a look here? There have been some changes to gc module in Python 3.13 but I can't immediately see how this might affect the behavior the OP is experiencing with 3.14. Thanks!

I'm not well versed in GitHub's CI. I've looked around a bit and saw a working setup using tox with Python 3.14 in the python-gitlab project:
https://github.com/python-gitlab/python-gitlab/blob/main/.github/workflows/test.yml
Maybe that can serve as inspiration.
If you'd like me to run specific tests against Python 3.14 or build from a dedicated branch, I could do that.

@penguinpee I've added a test run over in #250 which installs h5netcdf/netCDF4 into a Python 3.14 alpha environment. HDF5 and libnetcdf come from GitHub ubuntu runner. It recreates the above test error.
https://github.com/h5netcdf/h5netcdf/actions/runs/12536698832/job/34959983010?pr=250
I'll tinker with the related test to maybe get to the bottom of this.

eek good luck. LMK if you get stuck investigating again


Add Grayson College

@Logan-White99 I am sorry, the domain vikings.grayson.edu is removed from our trusted domains list because it was abused in the past. If you are the student of this school, please enroll to GitHub Student Developer Program. Then apply for JetBrains educational subscription with your GitHub account (GitHub tab at https://www.jetbrains.com/shop/eform/students).


Suggestion: Default hotkeys - Close Tab to: CTRL+W and Close Focused Pane to: CTRL+SHIFT+W

It would be better in my opinion, of course this is only a suggestion :D

Usually in Linux/Unix shells, Ctrl-W is the hotkey to delete the word before the current cursor. On win10, I'm mapping Alt-W to close-tab.
From man bash:

unix-word-rubout (C-w)
Kill the word behind point, using white space as a word boundary.  The killed text is saved on the kill-ring.


Language and structure: ID: How to send to codefendants

rewrite-- maybe group options? show ifs? Question marks? follow iups?

Some sort of syntax error here or I would have pushed. Maybe I will anyway, but this is the language. Subject to change once I can see what it looks like when it runds because I want to see how long it makes the page.
id: how to send to codefendant
question: |
How will ${ codefendants[i] } sign this Motion to Dismiss?
subquestion: |
Your codefendants must sign this motion before you give it to the court. They can sign

on their computer,
on their phone,
ask you to sign for them,
on your computer or phone, or
on paper.

How are you going to get ${ codefendants[i] }'s signature on this motion?
fields:

no label: codefendants[i].sign_method
datatype: radio
choices:

Email ${ codefendants[i] } a link: email
Text ${ codefendants[i] } a link: text
${ codefendants[i] } asked me to sign for them.: proxy
${ codefendants[i] } will sign with me at the end of the interview: local
I will print my motion and ${ codefendants[i] } will sign the paper copy.: physical

What email should we use to ask for ${ codefendants[i] }'s signature?: codefendants[i].signature_email
default: ${ codefendants[i].email }
js show if: |
val("codefendants[i].sign_method") == "email"
What number should we text to ask for ${ codefendants[i] }'s signature?: codefendants[i].signature_number
default: ${ codefendants[i].mobile_number }
js show if: |
val("codefendants[i].sign_method") == "text"

There is nonworking code pushed on this.

It seems you may have found a bug in da! I'll try to find out more tomorrow. For now, using the asterisks (*) at the start of a choice seems to cause an error.
fields:
  - no label: values_object
    datatype: radio
    choices:
      - Does **not** cause a syntax error: value one
      - **Does** cause a syntax error: value two

What you can do instead is use underscores (_) instead of asterisks (*):
fields:
  - no label: codefendants[i].sign_method
    datatype: radio
    choices:
      - __Email__ ${ codefendants[i] } a link: email
      - __Text__ ${ codefendants[i] } a link: text

@plocket super prority

Branch issue127

Closed by #177


Gen 1 Updated Amplify CLI and getting errors on hosting push

How did you install the Amplify CLI?
npm
If applicable, what version of Node.js are you using?
18
Amplify CLI Version
12.12.5
What operating system are you using?
Mac
Did you make any manual changes to the cloud resources managed by Amplify? Please describe the changes made.
nope
Describe the bug
We upgraded to use the latest CLI version from 10.8.X to 12.12.5 and the push works fine locally, but when we update it on the hosting cli build, we get the following error
2024-08-06T19:00:32.095Z [WARNING]: ✖ There was an error initializing your environment.
2024-08-06T19:00:32.103Z [INFO]: 🛑 DataStore does not support 1 to 1 connection with both sides of connection as optional field: User.conversation
Learn more at: https://docs.amplify.aws/cli/project/troubleshooting/

My guess is that it has something to do with the Datastore thing, but we do not use datastore and would opt to disable/remove it from our amplify project, but we do not know how to.
One work around was to reproduce the amplifyPush.sh script and remove the codegen related tasks and then run an amplify push -y as a build step. Is there any issues in doing it this way? Or is there any way to disable Datastore.
Expected behavior
amplify deployment succeeds
Reproduction steps
Not really much to share here
Project Identifier
Log output

2024-08-06T19:00:28.304Z [WARNING]: Be careful when using @auth directives on a field in a root type. @auth directives on field definitions use the source object to perform authorization logic and the source will be an empty object for fields on root types. Static group authorization should perform as expected.

277

2024-08-06T19:00:31.094Z [WARNING]: Be careful when using @auth directives on a field in a root type. @auth directives on field definitions use the source object to perform authorization logic and the source will be an empty object for fields on root types. Static group authorization should perform as expected.

278

2024-08-06T19:00:32.095Z [WARNING]: ✖ There was an error initializing your environment.

279

2024-08-06T19:00:32.103Z [INFO]: 🛑 DataStore does not support 1 to 1 connection with both sides of connection as optional field: User.conversation

280

Learn more at: https://docs.amplify.aws/cli/project/troubleshooting/

281

2024-08-06T19:00:32.175Z [INFO]:

282

2024-08-06T19:00:32.176Z [INFO]: Session Identifier: 4716c47b-7212-482f-a684-678d3f19f461

283

2024-08-06T19:00:32.271Z [ERROR]: !!! Build failed

284

2024-08-06T19:00:32.271Z [ERROR]: !!! Error: Command failed with exit code 1

Additional information
No response
Before submitting, please confirm:

[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
[X] I have removed any sensitive information from my code snippets and submission.

Hi @gakinson , that is indeed a strange error to see if DataStore is not enabled.
Can you check your amplify/backend/api/<apiName>/cli-inputs.json file and let me know if there is a property like this?
"conflictResolution": {
  "defaultResolutionStrategy": {
    "type": "AUTOMERGE"
  }
},

If not, then I'm not sure why the hosting build would have it enabled. You then might want to check what version of the Amplify CLI the hosting build is using and make sure it matches the version you've upgraded to locally.

Hello @chrisbonifacio,
This is our cli-inputs.json

What I noticed in the amplify docs is that it is initialized when the aws-amplify/datastore dependency is added to the project, which is there by default when you use the aws-amplify library which is required.

Thank you for sharing @gakinson . An empty config means that DataStore is not enabled on your API. Were you able to check the Amplify CLI version that your hosting build is using?


Report the use of components with vulnerabilities in easegress

Dear Team Members:
Greetings! Our team is very interested in your project. we performed source code perspective security analysis (SCA) and vulnerability library association analysis on this project and found that components with vulnerabilities are still being used into this project.We would like to report this issue to you,so that you can fix and improve it accordingly. I add the details in json file below. Please confirm whether this problem really exists and confirm with us. Looking forward to hearing from you and discussing more details with us, thank you very much for your time and attention.
Note: Each "affect_components" field in the report represents the vulnerable component introduced by this project. The other is the vulnerability information associated with it.
Qiyu Hou
easegress-main_report.json

Hi, thanks a lot for your report, we will check that and try to fix them as soon as possible.


Cannot format format files with brackets in the name

When trying to format a file with square brackets in the name ESLint plugin fails
Extension 'ESLint' cannot format 'somepath/somefile.[square].ts'
Also fails for {curly}
Files without brackets are formatted correctly.
eslint --fix works correctly with these files.
Tested in Windows and also in WSL2

The problem is that I need to escape these brackets since they have a special meaning in glob patterns.
@jrieken I am now escaping them to somepath/somefile.\[square\].ts when I create the document filter but I am still not called. Anything else I would need to consider?

Not sure I understand. Is there a special formatting registration for names with square- and curly-brackets which uses glob-patterns?

Sorry for not being preceise. To only register the formatter for file I care about in ESLint I create a DocumentFilter with a pattern where the pattern is basically the file path (e.g. '/home/dirkb/project/file.ts) Now if the file name has a []in it I need to escape it. So in the example I convert the pattern to/home/dirkb/project/file[square].ts. But even with that pattern I will never be called. Everything works fine for patterns like /home/dirkb/project/file.ts`

Thanks for clarifying. Adding @bpasero who implemented the glob pattern matching

To my knowledge, our glob library does not support escaping.

@bpasero can you give me a tip on how to create a pattern for a file name that has [ in it ? Is the recommendation to exchange it with a .

? matches any single character except path separator (/ and )

@bpasero thanks.

Any update on this?

Actually no :-).
Would you be willing to work on a PR?

Anyway, theoretically I'd say "yes", but in this case it's not something I need personally, but one of our customers.
So given that I have lots of other things as well, unfortunately, I have to pass …
Thanks anyway, for the quick reply, and for the work you do on the plugin!

try:
file.replace(']','[]]').replace('/[','/[[]');


[WAC] - 2306 fails to load properly in Firefox

Gateway Version: 2306
To Reproduce
Steps to reproduce the behavior:

Navigate to gateway using recent Firefox (tested in 116.0.2)

Expected behavior
Gateway loads
Screenshots & Additional context
Loading screen gets stuck on "Gathering environment info—this may take a few moments."  Nothing in the browser console is of any use to me in understanding what has gone wrong.

Hi,
Mozilla is not supported and the exensions supported are Edge or Chrome.
Kind regards!

The same issue here, tested with Firefox 119.0 (64-bits). Clearing cache and cookies + starting Firefox in safe mode does not make a difference. The same Windows Admin Center loads fine in Edge.

I too am running into this same issue with Firefox, but now also with Chrome & Edge. While there's been community provided fixes (ex.: Modifying the .js file that contains the malformed string, then re-compressing the ux.zip file in the program files directory).
What's happening is the web page hangs at 'Gathering Environment Info..." permanently.
I do know this is likely related to the issue of Firefox running its own certificate store, but this shouldn't be a penalty against Firefox - most Systems Administrators use Firefox because of this feature.

I also have the problem. Why is Firefox not supported?

Yes, why exactly is Firefox not supported? what there is to support, aside from standard HTML and scripting? it looks like Microsoft is trying to force people to use Edge, which is based on Chrome, so they cannot do the same to Chrome.

This is still true as of 4/21/2024, now using Firefox version 125.0.1. This feels extremely anti-competitive and has been going on long enough to seem intentional by Microsoft and the WAC team.

Latest edition of WAC (2410?) also doesn't support Firefox for those who websearch this problem.
They've gone so far as to remove the code that you can manipulate to make it work in firefox ('window.location.ancestorOrigins' renamed to 'window.location.ancestororigins' in one of the *.js files); none of the js files contain this code snipet.
I too feel that this is anti-competitive action by MS or the WAC dev team. When administrators would like to continue using privacy focused tools, why are we then forced to use apps that are not? It forces us to create dedicated clean environment to utilize your tools; not the most effective use or investment of time.


Thank you message for our partners

In the past, we have done thank you notes to each sponsor. Very individualized. Nice.
I have come across a couple of takes on this this we can consider.

Put all logos on an 11x14 sheet of paper and get all participants to sign it.

Take a group photo with logo posters and send those to partners

I don't know we have ever gotten a written release but we have been using pictures from the events for the past 7 years.
@snewt-n can you take a crack at adding that as a general "by attending this event, you give the organizers, blah. blah, blah" or do figure out if we need a more formal release.
You open the can, so you have first crack at the worms. :)

Happily!

ATO has this covered under their terms and CoC. https://allthingsopen.org/code-of-conduct/


increase default trigger limit

Suggest we bump the default limit for cloudant to infinity.
Marking critical as users are being affected and we should do this ASAP.

Due Date 11/09

resolved by PR #23


Null check operator used on a null value

Describe the bug
When i use Get.back(),it will throw exception,but when i use Phone physical return button ,it's great.

Flutter Version:
Enter the version of the Flutter you are using
[✓] Flutter (Channel stable, 3.16.4, on macOS 12.7.2 21G1974 darwin-x64, locale
zh-Hans-CN)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
[✓] Xcode - develop for iOS and macOS (Xcode 14.0)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2023.1)
[✓] Connected device (3 available)
Getx Version:
get: ^4.6.6

I found the reason for the error.
If i set navigatorObservers,it will throw exception.
GetMaterialApp(
              navigatorObservers: [
                GetXRouterObserver()
              ],
            )

class GetXRouterObserver extends NavigatorObserver {
  @override
  void didPush(Route<dynamic> route, Route<dynamic>? previousRoute) {
    RouterReportManager.reportCurrentRoute(route);
  }

  @override
  void didPop(Route<dynamic> route, Route<dynamic>? previousRoute) async {
    RouterReportManager.reportRouteDispose(route);
  }
}

I found the reason for the error.
If i set navigatorObservers,it will throw exception.
GetMaterialApp(
              navigatorObservers: [
                GetXRouterObserver()
              ],
            )

class GetXRouterObserver extends NavigatorObserver {
  @override
  void didPush(Route<dynamic> route, Route<dynamic>? previousRoute) {
    RouterReportManager.reportCurrentRoute(route);
  }

  @override
  void didPop(Route<dynamic> route, Route<dynamic>? previousRoute) async {
    RouterReportManager.reportRouteDispose(route);
  }
}

so how to avoid to remove the navigatorObservers and solve this issue?