Firefox support

Hi, I was wondering if there were any caveats/special handling that is needed for Firefox support.
I've had an issue where WebTransport connections get rejected on Firefox.
It doesn't seem to be certificate-related, since the exact same code/certificate works on google chrome.
@MOZGIII suggested that it might be on the server side.
I quote:

This is actually most likely the issue with the server-side
Firefox requires some special response from the server, I don't recall exactly - but please report this to wtransport

Maybe you have more information?

Context on why I think so:
https://github.com/BiagioFesta/wtransport/blob/4b25852afdb1a5f2beeb0a8a03eef7db0e7168ac/wtransport/src/endpoint.rs#L668-L670
Maybe latest FF needs something else...

I was able to connect with firefox 123.0.2 (linux) to wtransport/full.rs.

Of course, as already mentioned in the parent issue, Firefox does not support serverCertificateHashes yet. That means you will need a trusted certificate to make it work.

I understand OP says Google Chrome works with the same certificate, did they set the correct anchors on FF?
Would it be possible to have wtransport server logs?
For example, I'd expect something like
INFO Connection{id=0}: full::webtransport: Result: Err(connection aborted by peer: the cryptographic handshake failed: error 42)

Yes, on the second thought, this is most likely due to the lack of the trust to server certificate by FF. It works when set up properly without the serverCertificateHashes.

Actually, Firefox should support serverCertificateHashes - as they have had patches for it in 125a. For me it still doesn't work though...

I'm getting the "WebTransport connection rejected" intermittently, retrying fixes it but it's annoying :/

Testing with Firefox 127.0.1 (64-bit) (cargo run --example full).
Sporadically I get:
Uncaught (in promise)
WebTransportError { source: "session", streamErrorCode: null, name: "WebTransportError", message: "WebTransport connection rejected", code: 0, result: 0, filename: "", lineNumber: 0, columnNumber: 0, data: null }

(in the webclient).
This is not related to serverCertificateHashes (as Firefox now supports it).

Note: The issue is not always reproducible.

By protocol packets inspection, it seems Firefox closes the session stream right after CONNECT request.
wtransport server logs:
2024-07-08T21:16:13.405552Z DEBUG Connection{id=2}:Driver{quic_id=129670632847136}: wtransport::driver::worker: New incoming bi stream (0)
2024-07-08T21:16:13.405985Z DEBUG Connection{id=2}:Driver{quic_id=129670632847136}:Stream{id=0}: wtransport::driver::worker: First frame kind: Headers
2024-07-08T21:16:13.406446Z DEBUG Connection{id=2}:Driver{quic_id=129670632847136}:Stream{id=0}: wtransport::driver::worker: Headers: Headers({"dnt": "1", "sec-fetch-dest": "webtransport", "accept": "*/*", "priority": "u=4", "cache-control": "no-cache", "sec-webtransport-http3-draft02": "1", "origin": "http://localhost:8080", ":authority": "localhost:40719", "sec-fetch-mode": "no-cors", ":scheme": "https", ":method": "CONNECT", "accept-encoding": "gzip, deflate, br, zstd", "sec-fetch-site": "same-site", "user-agent": "Mozilla/5.0 (X11; Linux x86_64; rv:127.0) Gecko/20100101 Firefox/127.0", "accept-language": "en-US,en;q=0.5", "pragma": "no-cache", ":protocol": "webtransport", ":path": "/"})
2024-07-08T21:16:13.406631Z  INFO Connection{id=2}: full::webtransport: New session: Authority: 'localhost:40719', Path: '/'
2024-07-08T21:16:13.407053Z  INFO Connection{id=2}: full::webtransport: Waiting for data from client...
2024-07-08T21:16:13.408235Z DEBUG Connection{id=2}:Driver{quic_id=129670632847136}: wtransport::driver::worker: Ended with error: NotConnected
2024-07-08T21:16:13.408549Z  INFO Connection{id=2}: full::webtransport: Result: Err(connection closed by peer: 256)

And network inspection:
Client ------------> Server
     HTTP3: Request Stream (0) CONNECT

    <-----------------
      HTTP3: Request Stream (0) OK

   ---------------------->
      QUIC: Stop Sending (0) Error code: 0x101

In short, Firefox close the session stream (0) right after receiving the 200 OK response.
Considering this only happens sometimes, it might not be a missing protocol feature required by Firefox

Current master branch (https://github.com/BiagioFesta/wtransport/tree/623cc0b409c5409d2ce32b2f2a1ea79948bc8373) should now fixes the issue.
If anyone can test and provide feedback to me it would be great so I can enforce a new release

Yep, it fixes the issue! Thanks!


feat(extras): add supermaven

Add fast copilot alternative

I believe this config is better, not for any particular reason, but because it matches what LazyVim already has for the Codeium extra:
return {
  "nvim-cmp",
  dependencies = {
    "supermaven-inc/supermaven-nvim",
    build = ":SupermavenUseFree", -- this line is optional, remove if you are using pro
    opts = {},
  },
  ---@param opts cmp.ConfigSchema
  opts = function(_, opts)
    table.insert(opts.sources, 1, {
      name = "supermaven",
      group_index = 1,
      priority = 100,
    })
  end,
}

Also see https://github.com/LazyVim/LazyVim/discussions/3471.

I believe the current implementation of the PR is better. It's decoupling the 2 plugins from each other and if you also safeguard nvim-cmp with optional = true, then all the better. That way if there are more sources in the future it will be easier to manage.

Fair enough!

Also, in retrospect, I believe @dotfrag's suggestion is better because it also takes into account lazy-loading the plugin when needed.

All the others "ai completion" we configure them explicitly with only nvim cmp, and no inline suggestion.
Shouldn't supermaven do that too ? So that it's the same across all the completion of lazyvim.

@mirsella Yes, what you're suggesting is more in line with other LazyVim completions. Although, personally, I'll be changing that in my config if I end up using the Extra because I prefer it the other way. I'm just waiting for them to implement some kind of API to enable/disable it like with Codeium (because in Codeium I have it only enabled when nvim-cmp menu is not open, so there's no overlap).

No, I'm not talking about this. I'm talking about something like this, so I can directly enable/disable it via API commands.

ooh that's nice. Is codeium the only who supports this ? Sadly, it's not documented on their repo.

codeium.vim supports as well. You can see the commented out sections that are codeium.vim equivalent. codeium.nvim does not support it (I think?? Except if I'm wrong), since it's a source directly for nvim-cmp.

I don't know if this helps anybody, but this was my solution:
-- .config/nvim/lua/plugins/nvim-cmp.lua
return {
  "nvim-cmp",
  keys = {
    {
      "<Tab>",
      function()
        local suggestion = require("supermaven-nvim.completion_preview")
        local isSnippetActive = vim.snippet.active({ direction = 1 })

        if isSnippetActive then
          return "<cmd>lua vim.snippet.jump(1)<cr>"
        end

        if suggestion.has_suggestion() then
          return '<cmd>lua require("supermaven-nvim.completion_preview").on_accept_suggestion()<cr>'
        end

        return "<Tab>"
      end,
      expr = true,
      silent = true,
      mode = { "i" },
    },
  },
}

I'm still not happy with how supermaven works with my setup, but if anyone wants to suppress the annoying notifications:
  {
    "folke/noice.nvim",
    opts = function(_, opts)
      vim.list_extend(opts.routes, {
        {
          filter = {
            event = "msg_show",
            any = {
              { find = "Starting Supermaven" },
              { find = "Supermaven Free Tier" },
            },
          },
          skip = true,
        },
      })
    end,
  },

You can still view them with <leader>sna.

Also see codium plugin as a base on how to configure supermaven.
So please add a similar cmp spec and lualine

That's how I started out using supermaven, but it works differently to codeium. I think following the same setup isn't ideal. The completion is super long making the UX confusing and also causes many unintended text overrides. There was another issue that I can't recall right now and I'm not on my pc. How have you tried using supermaven?

Before making changes, please pull changes from this PR first.

[ ] The supermaven spec should be under nvim-cmp like how it's done for the others, otherwise supermaven won't work when a user has set opts.defaults.lazy = true
[ ] the cmp icon is missing. See lazyvim config
[ ] since we use cmp, the suggestions by supermaven should be removed, because now I see two ghost suggestions
[ ] ideally, just disable the non-cmp usage completely
[ ] the build step should probably be :SupermavenUseFree?

@dotfrag the lualine config wasnt working, because no icon was added yet. Same for the icon of the cmp completions. (lsp kind icon in lazyvim config).
As for the long code, we should probably configure cmp to trim the ghost text if at all possible.
Feel free to make any suggestions.

Ah I see.. good luck finding an icon. We could use codeium's but that might cause confusion to the user as to which one is enabled.
I have no idea how to approach this with cmp, and I believe it will be quite difficult to get right, if at all possible.
The completion doesn't only show the next word as a completion item, but sometimes the whole line.
FWIW, in my setup, I have not added cmp integration, and just <Tab> or <C-j> to accept suggestions from ghost text. I understand this doesn't follow LazyVim's convention, but this provides the best UX (for me at least).

I haven't used supermaven for about a 1+ month, so no idea about latest progress. When I used it, it was still a bit rough around the edges. So, my question would be, is it mature enough to be introduced as an Extra?
@dotfrag Since you seem to be using it more, what do you think about whether it's mature enough to be introduced as an Extra? My experience with it from a month ago would discourage me personally to contribute an Extra about it.

If it were up to me, I would not add it. It's still a bit rough and hard to modify its behaviour.

OP has already done most of the work, it's free feature for the project even if the plugin is still in early phases, so imo it can be merged when thoses checklist from folke are done

Before making changes, please pull changes from this PR first.
* [ ]  The supermaven spec should be under nvim-cmp like how it's done for the others, otherwise supermaven won't work when a user has set opts.defaults.lazy = true

* [ ]  the cmp icon is missing. See lazyvim config

* [ ]  since we use cmp, the suggestions by supermaven should be removed, because now I see two ghost suggestions

* [ ]  ideally, just disable the non-cmp usage completely

* [ ]  the build step should probably be `:SupermavenUseFree`?

@mirsella it's not as simple as that unfortunately.
Adding a new extra, means we'll also need to maintain it.
If it's buggy and can cause issue, then I'd rather wait till the project is more mature.

Supermaven is very stable now, using it daily in LazyVim. I prefer it to all of the other ai completion tools (it's much faster). I'd love to see this considered as an extra in the future!

@dotfrag @folke @Nybkox The README provides a star icon here, but not sure if this is something we'd like to use for LazyVim?

Merged. Thank you!


Rename New-ExternalHelpCab params and fix path creation bug

The Params on New-ExternalHelpCab are kinda sad:
-CmdletContentFolder : Should be HelpContentFolder
-ModuleMDFullPath : Should be LandingPagePath
When this command is run, if the output directory does not exist, an error is thrown. This should instead create a new directory.

Let's use -ExternalHelpFolder for consistency.

#105


doc update

Write the interface document
Transfer test files to facilitate more granular testing later

Codecov Report

Merging #6 into master will decrease coverage by 0.45%.
The diff coverage is 30%.

@@            Coverage Diff             @@
##           master       #6      +/-   ##
==========================================
- Coverage   56.21%   55.76%   -0.46%
==========================================
  Files          10       10
  Lines         370      373       +3
  Branches       28       30       +2
==========================================
  Hits          208      208
- Misses        161      164       +3
  Partials        1        1

Impacted Files
Coverage Δ

src/common/base.ts
96% <ø> (ø)
:arrow_up:

src/data-types/list.ts
51.21% <0%> (ø)
:arrow_up:

src/data-types/set.ts
52.77% <25%> (ø)
:arrow_up:

src/data-types/zset.ts
37.14% <33.33%> (-1.99%)
:arrow_down:

src/data-types/hash.ts
62.85% <66.66%> (-0.78%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update c416265...59f263f. Read the comment docs.


Other Languages versions

Hello
Your app is really really cool, but do you think it's possible to use other languages for cards.
I would like to play with french cards
I as able to find theme here : https://squadbuilder.fantasyflightgames.com/card-database
Here for example the Iden Versio Card :

Thank you

I'd really like to support other languages in the app but it relies on xwing-data2 which currently doesn't have non-English language support.
There's a discussion ongoing about adding other language support to the data collection here, but until that happens I don't think it will be practical to add this just to the X-Squad app.


When will the ground truth answers be made public?

When will the ground truth answers be made public?

We won't be releasing the ground truth answers (both test and dev sets). You can submit your results to the evaluation server (will be available soon) to benchmark your methods on HourVideo. We provide ground truth annotations for 2 sample videos here.
Thanks.

We won't be releasing the ground truth answers (both test and dev sets). You can submit your results to the evaluation server (will be available soon) to benchmark your methods on HourVideo. We provide ground truth annotations for 2 sample videos here.
Thanks.

:) I understand the need for anonymity in the test set, but why is the dev set also not released? Two sample videos are far from sufficient for proper development and tuning. Without the dev ground truth, the dataset is nearly unusable for meaningful experimentation. Could you clarify the reasoning behind keeping both dev and test sets anonymous?

same concern


Update README to reflect the need for a response.

Just added a response to the catch block while the event.waitUntil fires behind the scenes...

Fixes #2


Fix AppVeyor and Improve Travis CIs

Fix the AppVeyor CI builds
Add macOS to Travis CI targets
Switch to Xenial dist on Travis... uses their more modern GCE infrastructure, should result in faster CI runs.

@khmarbaise I think we should drop the JDK 6 target from AppVeyor.
Downloading and installing a custom version of Maven on AppVeyor seems to be hit-and-miss, two intermittent issues:

Maven Central occasionally rejecting the request with a HTTP 403. Probably due to rate-limiting DDoS protection.

Even after installing Maven 3.2.5, for JDK 6 and 7 (8 works fine) the build is failing on AppVeyor with:

mvn -B -Prun-its clean verify
[INFO] Scanning for projects...
[INFO] Downloading: https://repo.maven.apache.org/maven2/org/codehaus/mojo/mojo-parent/39/mojo-parent-39.pom
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]
[ERROR]   The project org.codehaus.mojo.appassembler:appassembler:2.0.1-SNAPSHOT (C:\projects\appassembler\pom.xml) has 1 error
[ERROR]     Non-resolvable parent POM: Could not transfer artifact org.codehaus.mojo:mojo-parent:pom:39 from/to central (https://repo.maven.apache.org/maven2): Received fatal alert: protocol_version and 'parent.relativePath' points at wrong local POM @ line 28, column 11 -> [Help 2]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.

If we just tested against JDK 7 and 8 on AppVeyor we could use the default installed Maven and everything passes fine.
Do you really still need to maintain JDK 6 compatibility with newer releases of AppAssembler?

If you like to build JDK7 you need to set https.protocols=TLSv1.2 cause the transfer to Central has been forced to use TLSv1.2+ which is not turned on by default for JDK7...

@khmarbaise Okay that works for JDK 1.7, but still doesn't work for JDK 1.6 as the version on AppVeyor is very old (1.6.0_45), and this doesn't support TLS v1.2. It have tried JDK 1.6 with TLS v1.1 and v1.0 but both fail too. Should we abandon JDK 1.6 for AppVeyor CI?

I would say JDK6 is dead...I would like to lift the minimum to JDK7+

@khmarbaise Okay I have removed the JDK 1.6 target on AppVeyor.
The integration tests are passing on JDK 1.8 on AppVeyor but failing on JDK 1.7. I am not sure why. I tried to reproduce on my Windows 10 VM, but I get the same test failures on there for JDK 1.7 and JDK 1.8

For the integration tests the settings for the https.protocols TLSv1.2 must be configured for maven-invoker-plugin to support that during the integration tests cause they are downloading artifacts as well ...which is for sure the issue you are facing...

@khmarbaise Okay I think I now have both CI's passing all tests :-)

Yeah I see it...great work...

BTW: can please separate your pull request with the appropriate issue which means not two things within a single pull request...makes it easier to integrate them...Ok..forget this time I will merge them together....

@khmarbaise Thanks, I have done that with the other PRs. I didn't with this one, as I felt the two issues were tightly related. If you still want to merge it as is, that would be great :-)

I Wrote already that I will merge it as it...No Problem..


Tests not triggering Token Mismatch Exception

Laravel Version: 5.3.22
PHP Version: 7.0

Description:
When I write a test that interacts with a form, even if the form doesn't have a csrf field, the form submission succeeds. But if I manually submit the form, it throws a Token Mismatch Exception.
Steps To Reproduce:

Probably because you're running with middleware disabled.

No, I'm not using the WithoutMiddleware trait.

Oh, yeh, that middleware is disabled during tests. Please check the source code, then it'll all make sense.

 I saw the middleware, where it has a check if it's running a test.


feature: "all" target support, bug fixes

Misc fixes and todo resolutions.
Features:

"all" target support
2q hermitian support

Bug fixes:

add result type validation for shots > 0 simulation
add instruction to i op so it doesn't get spliced out

Clean up:

replaced indexed child visits in pragma visitor with named child visits

Tests:

bool type
unsized int array

All of these changes are being actively manually tested e2e from the bdk integ tests. I'll add the missing 3 lines of coverage tests tomorrow


Wrong CMDR name set it/ Delete another Account with the Correct CMDR name

Hello i have a problem i registered in FMCS with the Name of CMDR {Cap] Takaber but i changed my name to Cap Takaber in game so dont work the FCMS anymore and with trying to fix that i created another account in FCMS with the correct name Cap Takaber but obviously don't let me register my Fleet Carrier cuz its already registered with my another account and idk if can delete the second account with the correct name and correct the name for my first account CMDR [Cap] Takaber into Cap Takaber only so i can use the FCMS :c plz

See reply to your previous issue on this. I can't go in and change anything unless I can verify that you're the account owner. Send an email to the Fuel Rats support email address with your new and old commander name, and we will sort it out.

Excuse me idk what is the Email address for Fuel Rats support, where i can find it?


sops tasks broken

The task docs state:
* sops:d:                         Decrypt sops file 'to use must include -- before path to file.'  eg "task sops:d -- file.yaml"
* sops:e:                         Encrypt sops file 'to use must include -- before path to file.' eg "task sops:e -- file.yaml"

but using it returns an error:
gor1lla@rapture:~/git/private/homelab/terraform/cloudflare$ task sops:d -- secret.sops.yaml
task: [sops:d] sops --decrypt --in-place secret.sops.yaml
Error: cannot operate on non-existent file
task: Failed to run task "sops:d": exit status 100

Unless I'm missing something that error means your secret file is not found.

Does it work for you? The file is definitely there. Using sops --decrypt --in-place secret.sops.yaml itself works

Interesting, I honestly don't use it to be honest since the sops CLI is short enough to run without task.

I might end up removing the sops task as it's not really helpful. Feel free to use it in your own repo though if you can get it working.

I just stumbled over it. I use sops and kubectl commands directly.
Want me to open a PR?

Sure, if you don't mind.

That's the bare minimum I could do.  Love the template so far, already learned a lot

Awesome, and thanks!


[ RNN ] Add mask for dropout

This commit includes :
. implementation of mask for dropout
Self evaluation:

Build test:	 [X]Passed [ ]Failed [ ]Skipped
Run test:	 [X]Passed [ ]Failed [ ]Skipped

Signed-off-by: jijoong.moon<EMAIL_ADDRESS>

:memo: TAOS-CI Version: 1.5.20200925. Thank you for submitting PR #1427. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://nnstreamer.mooo.com/.


Add heapdump command to help debug memory usage

When the bot is using a mediumishly high amount of memory (it takes memory to generate the heap dump so don't do it when you have none left), run ->heapdump (admin only command) to freeze the bot in the name of heapdump generation, then open the resulting file with chrome/opera debug tools.  It might help us figure out what's using the most memory and if there's any easy optimizations we can make to use less memory.
Info on how to use the memory debugger available here

That's interesting, thank you


com.tumblr.jumblr.exceptions.JumblrException: Not Authorized when performing PhotoPost.save()

Hi,
I'm getting this exception message: "com.tumblr.jumblr.exceptions.JumblrException: Not Authorized" when I try to perform a PhotoPost.save();
How to reproduce:

I have my consumer key and consumer secret ready
Obtained the token and token secret through web browser: https://api.tumblr.com/console/calls/user/info
Run the codes below with token and tokenSecret obtained hard coded:
JumblrClient client = new JumblrClient(consumerKey, consumerSecret);
client.setToken(token, tokenSecret);

PhotoPost photoPost = client.newPost( "myblogname", PhotoPost.class );
photoPost.setId( 1232 );
photoPost.setPhoto( new Photo( "http://somedomain.com/somephoto.jpg" ) );
photoPost.setLinkUrl( "http://someotherdomain.com/1234" );
photoPost.setCaption( "Test Photo Title" );
photoPost.save();    // It is this line which throws an exception.
Would appreciate anybody could look into this. Thanks.

Exception in thread "main" com.tumblr.jumblr.exceptions.JumblrException: Not Authorized
	at com.tumblr.jumblr.request.RequestBuilder.clear(RequestBuilder.java:156)
	at com.tumblr.jumblr.request.RequestBuilder.postMultipart(RequestBuilder.java:58)
	at com.tumblr.jumblr.JumblrClient.postEdit(JumblrClient.java:361)
	at com.tumblr.jumblr.types.Post.save(Post.java:348)
	at App.main(App.java:37)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)

The "Not Authorized" exception is caused by setting an ID with the following line:
photoPost.setId( 1232 );

If you want to create a new PhotoPost with the above contents remove that line and it will work. If you want to edit an existing post then you'll have to follow the post editing flow in the docs. I tested and got your snippet to work by removing the setId line.


Add POSIX compatibility

Hi,
it's almost a rewrite of the shell script for helm script. I hope the new maintainer / well-known company @zendesk will have some time for this project.
I remove all bash related shell code and replace it with POSIX feature. The script will run on almost any posix compatible shell. The scripts is also compliant to shellcheck.
ZSH (MacOS default shell) and ash (Alpine default shell) should now out of the box supported. gnu-getops is not required anymore.
All tests from test.sh are green under MacOS 10.15.4 (zsh, bash 3.2.57) and Alpine 3.11 (ash)
Additional features:
All helm commands are supported now. Before this only install|template|upgrade|lint|diff are supported. If plugins like kubeval are installed this script need to be modified. The PR remove the limitation.
I recommend split view and ignore whitespaces for best experience to get all changes. https://github.com/zendesk/helm-secrets/pull/153/files?diff=split&w=1
Includes/Resolves/Fixes:

https://github.com/zendesk/helm-secrets/pull/149
https://github.com/zendesk/helm-secrets/pull/150
https://github.com/zendesk/helm-secrets/pull/129 (All name restrictions dropped)
https://github.com/zendesk/helm-secrets/pull/143
https://github.com/zendesk/helm-secrets/pull/142 (dpkg variant dropped; you should never run helm plugin install as root)
https://github.com/zendesk/helm-secrets/pull/136 (verbose output is not on stderr)

I'm gonna start to maintain an own fork.
https://github.com/jkroepke/helm-secrets
If you still interest into this PR, contact me.


docs: update css import lists

Problem
I had broken styles after updating from an old version.
Cause
Because I'm using next.js, I have to manually import the stylesheets listed in the documentation. These are outdated.
Solution
I went through all rmwc packages by hand and assured that all files imported by packages/<package>/src/styles.ts are mentioned in the documentation.
I was a little unsure what to do with list-collapsible. The component itself is located within the list directory. There exists collapsible-list.ts and styles.ts containing style imports. However,

collapsible-list.ts is a subset of styles.ts,
styles.ts imports collapsible-list.ts,
none of the three list docs pages mentions collapsible-list.ts.
I decided to reflect styles.ts as in the other list pages, but you should take a look at this one.

In a personal project I wasn't able to import<EMAIL_ADDRESS>from the list component, so this probably needs correction. (After further investigation it seems these styles end up in styles.css, I just don't know why).
In the snackbar component it reads:
import<EMAIL_ADDRESS>import<EMAIL_ADDRESS>
while in all other components the following is used:
import '@rmwc/button/styles';
import '@rmwc/ripple/styles';

I decided to leave this change up to you. But if adapted, the docs need to be updated accordingly.
There is a docs page touch-target.tsx that I was unable to find in the web interface. I still adapted it to reflect the components styles.ts.
Further discussion
Doing this manually took quite some time. Ideally, it would be possible to express the dependencies in a way that docs and code would be generated from it. This would prevent them becoming out of sync, although I don't know if/how this is possible.
Even if it can't be autogenerated, a notice in CONTRIBUTING.md might be added to draw the attention to the fact the docs must be updated when css imports are changed. I would even consider this type of change breaking(!) and mark it as such, since it requires code changes by the user.

Thanks for the PR! I think for now we should just let collapsible-list.ts file be. As you said, it's part of the list styles import.

Okay, then we'll leave collapsible-list.ts as is. On my side, two questions are left:
What about list/list-item.css, can you confirm I it ends up as @rmwc/list/styles.css in the production build?
How about the notice in CONTRIBUTING.md? Under "Contributing to Existing Components", something like
- When changes to the style imports are made, the docs in "utils/readme/src/readmes" must be updated. This should be marked as breaking change!


ChangeNumber property in ServiceTagsListResult is set as String but in the service tags json it is a Number

Type of issue
Typo
Description
The ChangeNumber property is listed as a string

The service tags json documents listed here has these set as Number: https://learn.microsoft.com/en-us/azure/virtual-network/service-tags-overview

example:
Page URL
https://learn.microsoft.com/en-us/dotnet/api/microsoft.azure.management.network.models.servicetagslistresult.changenumber?view=azure-dotnet#microsoft-azure-management-network-models-servicetagslistresult-changenumber
Content source URL
https://github.com/Azure/azure-docs-sdk-dotnet/blob/master/xml/Microsoft.Azure.Management.Network.Models/ServiceTagsListResult.xml
Document Version Independent Id
79ae2a1c-b47d-92a3-a60e-8e240aeca04b
Article author
@azure-sdk
Metadata

ID: 408737ea-f263-c4b7-f683-6397f240aae9
Service: azure-virtual-network

Hi @kennyvanle.  Thanks for reaching out and we regret that you're experiencing difficulties.   The Microsoft.Azure.Management.Network package reached end of life in September 2023 and is no longer published nor supported by Microsoft.   We strongly recommend not using this package and moving to  the current generation equivalent, Azure.ResourceManager.Network.


Atoti 0.8.2 and Python 3.9.1

Steps to reproduce
using Python 3.9.1
import atoti as tt fails
Actual Result
(base) C:\Users\cbrennan\Workspace>python
Python 3.9.1 | packaged by conda-forge | (default, Jan 10 2021, 02:50:22) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import atoti as tt
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\ProgramData\Continuum\miniconda3\lib\site-packages\atoti\__init__.py", line 5, in <module>
    from atoti_core import BaseSession
  File "C:\ProgramData\Continuum\miniconda3\lib\site-packages\atoti_core\__init__.py", line 3, in <module>
    from .activeviam_client import *
  File "C:\ProgramData\Continuum\miniconda3\lib\site-packages\atoti_core\activeviam_client.py", line 37, in <module>
    from .fetch_json import JSON_CONTENT_TYPE, JsonResponse, fetch_json
  File "C:\ProgramData\Continuum\miniconda3\lib\site-packages\atoti_core\fetch_json.py", line 40, in <module>
    json_dump_default: Optional[_JsonDumpDefault] = ...,
  File "C:\ProgramData\Continuum\miniconda3\lib\typing.py", line 262, in inner
    return func(*args, **kwds)
  File "C:\ProgramData\Continuum\miniconda3\lib\typing.py", line 339, in __getitem__
    return self._getitem(self, parameters)
  File "C:\ProgramData\Continuum\miniconda3\lib\typing.py", line 463, in Optional
    return Union[arg, type(None)]
  File "C:\ProgramData\Continuum\miniconda3\lib\typing.py", line 262, in inner
    return func(*args, **kwds)
  File "C:\ProgramData\Continuum\miniconda3\lib\typing.py", line 339, in __getitem__
    return self._getitem(self, parameters)
  File "C:\ProgramData\Continuum\miniconda3\lib\typing.py", line 451, in Union
    parameters = _remove_dups_flatten(parameters)
  File "C:\ProgramData\Continuum\miniconda3\lib\typing.py", line 231, in _remove_dups_flatten
    return tuple(_deduplicate(params))
  File "C:\ProgramData\Continuum\miniconda3\lib\typing.py", line 205, in _deduplicate
    all_params = set(params)
TypeError: unhashable type: 'list'

Expected Result
Environment

atoti:
Python:
Operating System:

Logs (if relevant)

Atoti 0.8.2
Python 3.9.1
Import atoti as tt
Fails
It seems to me that Atoti 0.8.x is not supported on Python 3.9.1
Your change log says support for Python 3.8 was removed after Atoti 0.8.0
Can you import Atoti 0.8.02 successfully on Python 3.9.1?

This is a bug in Python 3.9.1 itself: https://bugs.python.org/issue42965. You can upgrade to a more recent 3.9 release to fix the problem. For instance, the project template uses 3.9.17.


Support python 3.11, 3.12

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Currently, installing multiprocessing-logging from conda-forge in a python 3.11 environment will result in version 0.3.3 being installed, which is broken in python 3.9.13+. Installing 0.3.4 from PyPI works fine for me in python 3.11 and 3.12, and it's a pure python package, so I don't see why it should be restricted to <=3.10 on conda-forge.

@conda-forge-admin, please rerender


Enhance discount rate callout to actually work

What does this PR do and why?
Provide a description of what this PR does. Link to any relevant GitHub issues, Notion tasks or Discord discussions.
Screenshots or screen recordings
If applicable, provide screenshots or screen recordings to demonstrate the changes.
Acceptance checklist

[ ] I have evaluated the Approval Guidelines for this PR.
[ ] I have tested this PR in all supported browsers.
[ ] I have tested this PR in dark mode and light mode (if applicable).

Current dependencies on/for this PR:

main

PR #2348

PR #2349

PR #2350

PR #2351   👈

This comment was auto-generated by Graphite.

Graphite Merge Job
Current status: ⏳ Queued to merge
This pull request is currently queued to be merged as part of a stack.
This comment was auto-generated by Graphite.

Job Reference: FCO7UxXsqYOBvxApXFkP

Graphite Merge Job
Current status: ⏳ Queued to merge
This pull request is currently queued to be merged as part of a stack.
This comment was auto-generated by Graphite.

Job Reference: tq0DBErRQ758wBw1xKNP


[v2] type checking and intellisense support

Currently the v2 build provides no types for consumers. We should output declaration files that work well with vanilla ES Module usage (ensuring it works with vanilla ES Modules ensures the most compatibility: if it works with vanilla, it will work with everything else because it will be in the most standard way that tools are aligning with).

To make this have a high chance of working well in a way that is easy to understand, I recommend we change from the current chunked output, and simply output vanilla ES Modules that match the exact same structure as our source code.
Essentially, the dist/ folder should simply be a mirror of our src/ folder: a one-to-one mapping with merely types stripped, filenames converted from .ts to .js, plus type declaration files emitted for type checking and intellisense on the consumer end.
Anything else will be more complicated: more to think about, more likely someone looking at source gets confused when looking at dist/ output, etc.

Alright, here my initial vision for this simplification, including example app and Node ESM import test in the sample app:
https://github.com/PrismJS/prism/pull/3704
Note that with this setup, we get full intellisense and type checking.

If we Go-To-Definition, we are taken to the TypeScript source (not just the declaration file):
https://github.com/PrismJS/prism/assets/297678/77cc0d1b-b638-49da-b7a0-fb3845a1bd77
Lastly, this exposes one problem with the current type definitions of languages. The type definitions for the language objects are not visible to VS Code for some reason, and we get no intellisense and .grammar methods are type any:
https://github.com/PrismJS/prism/assets/297678/63af5575-6a65-4933-852f-1d8ca0d65c16
I'm guessing this may have to do with the type casts (?), f.e. as LanguageProto<"typescript">.
Now that we have types flowing into consumer code in the simplest-possible ESM setup, we can start to work on the last things such as these missing types for end user code.
That's all I have time for today. I would love if you can take this for a spin and give some thoughts on it.
Last things needed on the PR's current path:

ensure the components.json build is handled if needed
fix last type definition issues


Filter by file name, filter by torrent name

Related:

https://github.com/picotorrent/picotorrent/issues/644
https://github.com/picotorrent/picotorrent/issues/474

I am using the latest build, 876.
So, I see that you've added the ability to filter the main torrent list via scripts and that you have implemented "show downloading" and "show uploading", which is a nice improvement.
However, most torrent clients have two features that are sorely missing in PicoTorrent, especially the first on this list:

Ability to filter (search) the Files tab based on desired name. Let's say that you are opening a 2 terabyte large torrent with "Every Linux ISO ever created". Currently, PicoTorrent is absolutely awful at handling that situation. Most, perhaps even all, other torrent clients have an always-visible filter-box where you can type something like "ubuntu" to see all files and folders matching (case-insensitive) that name. Next, you may look at the results and refine it further, perhaps to "ubunty-17." and voila, all isos in the torrent matching Ubuntu 17 will be visible. You would then ctrl-a to select all of those, and right click and set them to download (after of course first having set the whole torrent to "do not download"). This feature is so vital that it is the number one thing that is painful about PicoTorrent. Everything else about it is pretty awesome actually! Thanks for such a great application!
Ability to search in the torrent list. Imagine, as an experiment, that you are seeding 300 torrents. To speed up finding the correct one, many clients let you Ctrl-F (or have an always-visible textbox) to filter the torrent list to find the correct one.

These features, especially number 1, are so helpful that it is hard to recommend PicoTorrent. Either way, I will keep using PicoTorrent and suffering through the bad file selection. It's a really nice client overall! :-) Thanks, Viktor!

Hi! Thanks for the kind words. As you've discovered, the scripting thing is just beginning to take shape, and the idea is to allow some kind of free filter based on the scripting engine. There are some ideas I want to present somehow, I'll let you know.

Ah that is very smart. So some kinda text box that will be hooked to the filter engine behind the scenes, and allow real-time filtering? That sounds great. Heck in the future you could even become an insanely cool torrrnt client with features like Ubuntu ext:iso size:>650mb in the filter textbox. ;)

Sure, that is the plan. The filter engine builds on JS so the idea is to be able to write JS filters :)
Sent from my iPhone

On 11 Dec 2019, at 14:29, VideoPlayerCode<EMAIL_ADDRESS>wrote:

Ah that is very smart. So some kinda text box that will be hooked to the filter engine behind the scenes, and allow real-time filtering? That sounds great. Heck in the future you could even become an insanely cool torrrnt client with features like Ubuntu ext:iso size:>650mb in the filter textbox. ;)
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

@vktr Clever! If you need a tiny, embeddable Javascript engine, QuickJS is a very good choice. It seems to be the winner of all micro engines. For people who don't want to embed Google V8.
https://bellard.org/quickjs/bench.html


BREAKING CHANGE: any and all return None if all values are None

Prior to this change, combinedType = any/all would return False if
all the values in the list were None. In most cases, datasets have
all values None when data is missing, and in that case, assuming
negative when data is missing is inconsistent with the mapping for
single fields.
In addition, for the clinical applications that are being used,
value mappings are better imagined as open-world (absence of a
statement does not imply falsity) rather than closed-world, where
the absence of a statement means it is false. As an example, for
medication mappings, it is possible we have missed out a medication
in the antibiotics list, so the absence does not imply that a
patient did not receive that category of medication, in this case,
antibiotics. In general, we are more certain that something happened
(patient was given a certain medication), assuming no entry errors,
rather than something did not (patient did not receive antibiotics).

Codecov Report

Merging #61 (3e12ed7) into main (9a0c2e6) will decrease coverage by 0.06%.
The diff coverage is 87.50%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@            Coverage Diff             @@
##             main      #61      +/-   ##
==========================================
- Coverage   89.37%   89.32%   -0.06%
==========================================
  Files           4        4
  Lines         687      693       +6
==========================================
+ Hits          614      619       +5
- Misses         73       74       +1

Impacted Files
Coverage Δ

tests/test_parser.py
100.00% <ø> (ø)

adtl/__init__.py
84.97% <87.50%> (-0.03%)
:arrow_down:

Sounds good - this also brings any/all in line with firstNonNull. With this change in mind, to maintain consistency we should go back through most of the parsers and add in the 'unknown' option to, for example, the "Y/N/NK" variables in the subject/visit tables which have up until this point assumed that 'unknown' should be mapped as false - should specifically map to None instead.

@abhidg can you bump the version number for this?


Not working after upgrading to v6.3.6.

Expected Behavior
Work as normal as v6.3.5.
Actual Behavior
cannot add subscriptions or match patterns.
Steps to Reproduce the Problem

Add a subscription

Specifications

OS: NixOS 21.05 (Okapi) x86_64
Browser: Firefox
uBlacklist Version: v6.3.6

what version of firefox do you use?

78.14.0esr (64-bit)

Upgrading of the build system may have broken support for old browsers.
To be honest, I don't want to care about old browsers. The latest version of Firefox ESR is 91.
You have 2 options:

create a pull request to support Firefox 78 ESR
use the latest version of Firefox ESR (I know nothing about NixOS, but there seems to be a package of ESR 91)


Address isoyear transformation

Related to the below comment provided in the description of #368 PR

isoyear transformation is currently being left (commented) out so it can be more fully addressed in a more robust way in its own new issue.

Closing this as it was decided to remove a number of transformation heuristics in this PR.


Add sbt-unicode dependency and build scaladoc in CI

Closes #1911
Overview
We want to begin running the scaladoc build in our CI and enable devs to easily
build and view the scaladoc rendering of our API docs. This change gets us part
way there. Further work to streamline building and viewing the docs will follow,
along with developer documentation.
Changes

Adds the sbt-unidoc plugin to generate a single site from all our docs
Fixes a number of scaladoc errors
Runs unidoc in our CI builds

Reviewing
Probably easiest to go by commit, as most of the scaladoc error fixes can
probably be skimmed. If anyone can advise on how to get some of the stubborn
references working correctly, I'd appreciate the tips.
To build the docs locally to see what they look like, you can run
sbt unidoc

[x] Ran make fmt-fix (or had formatting run automatically on all files edited)

Codecov Report

Merging #1997 (0292d3a) into unstable (a86dcb7) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##           unstable    #1997   +/-   ##
=========================================
  Coverage     77.83%   77.83%
=========================================
  Files           418      418
  Lines         12813    12813
  Branches        584      603   +19
=========================================
  Hits           9973     9973
  Misses         2840     2840

Impacted Files
Coverage Δ

...ain/scala/at/forsyte/apalache/infra/Executor.scala
100.00% <ø> (ø)

.../src/main/scala/at/forsyte/apalache/tla/Tool.scala
0.00% <ø> (ø)

...yte/apalache/tla/tooling/opt/PassExecutorCmd.scala
0.00% <ø> (ø)

...t/forsyte/apalache/shai/TransExplorerService.scala
88.88% <ø> (ø)

...in/scala/at/forsyte/apalache/tla/bmcmt/Arena.scala
78.16% <ø> (ø)

...ache/tla/bmcmt/DumpFilesModelCheckerListener.scala
0.00% <ø> (ø)

...yte/apalache/tla/bmcmt/SymbStateRewriterImpl.scala
93.02% <ø> (ø)

...syte/apalache/tla/bmcmt/rules/IntArithPacker.scala
100.00% <ø> (ø)

...apalache/tla/bmcmt/search/ModelCheckerParams.scala
80.95% <ø> (ø)

...e/tla/bmcmt/trex/IncrementalExecutionContext.scala
75.00% <ø> (ø)

... and 12 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update a86dcb7...0292d3a. Read the comment docs.

Add sbt-unicode dependency and build scaladoc in CI

Just to make sure, it is sbt-unidoc, not sbt-unicode?


Refactor: use glyph_brush_layout and add text alignment support

Context
The current state of bevy_text is :

ab_glyph for font loading
A custom, hand-made implementation of text layout with some of the code coming out of the ab_glyph examples
No standard way to measure text

Content
This PR introduces a dependency to glyph_brush_layout in bevy_text, and replaces the current implementation of text layout (which is done in the DrawableText's implementation of Drawable) with a more robust solution (e.g. using a crate that's meant to do that).
Since we're using glyph_brush_layout, we get text alignment for free in bevy_ui, so that's implemented also :) more on that later.
I'm exposing a TextPipeline. It is a public abstraction that allows to launch all text-related operations on a GlyphBrush, where GlyphBrush has been reimplemented for bevy's specific needs. Operation on a TextPipeline could potentially be launched from different threads, and include :

Queing text
Pre-rendering text in the queue (so, computing its layout)
Measuring text

The idea is that TextPipeline should be the public interface and encapsulates operations on the GlyphBrush, making sure we dont require a breaking change when we refactor it in the future for some reason (namely to add caching).
Goal
In short, this PR allows for standardized text layout and text measurement implemented in bevy_text. It would then be usable in the whole bevy ecosystem. I see two main use cases here :

Alternative UI system (imgui, iced are two examples that comes to mind)
In-game text

Caveats
No caching
We'd have to see if caching is something worth doing or not : right now, whenever the text or its style changes, its layout is recomputed. This is awful for things such as animating the color of a text. I originally thought TextAlignment would be worth storing in the text style, but a change of text style might not need a whole text layout recompute, while a change of text alignment definitely would.
The fact that we're adding a field to the TextStyle component effectively makes this PR a breaking change; It might be worth refactoring TextAlignment to use its own component. But the problem remains for the text size which is contained in TextStyle. Changing a text size will of course require to recompute all its glyphs.
bevy_ui's Val::Percent variant
Right now, the usage a Val::Percent to apply a constraint on the size of a textblock in min_size, size or max_size will be ... Ignored. We might need to use the parent's constraint to compute the percentage, I'm not exactly sure how to handle that.
Rationale
It's also possible to use another text engine like Fontdue or something. But since bevy currently uses ab_glyph it only makes sense to use glyph_brush_layout since it's based off ab_glyph, and actually written and maintained by the same author.
Thanks ❤
@tigregalis for doing most of the work on glyph positioning
@verzuz for the help in debugging this

Lazy question that I could answer myself when I eventually review this pr: does this approach resolve #283?

yes, yes it does

Hey, I tried to rebase this PR branch on bevy master and now it just doesn't show any text. Maybe you have some ideas?

@enfipy I rebased on master, fixed the problem and force-pushed.
CI is broken but that seems to come from bevy_ecs ? Not sure there's anything I can do for that.

Hmm yeah that's a problem. I'll fix that now.

Reviewing now btw!

(master build is fixed)

@cart Thanks for taking the time to review this :)
All comments are adressed.
I have one concern regarding the Mutex on section_queue in glyph_brush : it is essentially useless for now. We need to determine whether queing text from different threads is a goal or not (but I dont think it is, at least for now).
In my opinion :

Measuring text shouldn't require mutable access to the TextPipeline since it is done "in one go" and cannot possibly collider with an operation coming from an other thread.
Queuing text and processing it using the TextPipeline should require mutable access, because we must not have two threads queuing sections in parellel, that would likely be no bueno.

If we agree on that, I'll make it so.

@AlisCode There's sometimes the error NoSuchFont when the font not loaded before render. This error appeared only on this PR's fork.

@AlisCode There's sometimes the error NoSuchFont when the font not loaded before render. This error appeared only on this PR's fork. When loading font on the resource stage - everything works.

I ran into this as well on the first run for the text_debug example, but wasn't able to reproduce it in subsequent runs.

@enfipy @tigregalis
Yep, thanks for noticing ; that would be because I removed the QueuedText local resource from text_system, thinking we did not need it anymore. Turns out I was wrong, and I now understand why. I'll re-add it.
Any comment on the mutability concern around TextPipeline I mentioned ?

because we must not have two threads queuing sections in parellel, that would likely be no bueno

@AlisCode Why is this? I'm not sure whether queuing text, and processing it, can't be done from multiple threads. At the entity/component level they shouldn't conflict, at least.
It's just that when you're queuing, you're touching the same resources, writing to the same atlases or potentially inserting to maps under the same keys. I don't think the order things get added matters, so that shouldn't be a concern.
Having said this, right now, it looks like, for any given entity, we're adding its text to the queue, then immediately removing it from the queue to process it, because we need to return the PositionedGlyphs specific to this entity. The queue isn't really doing anything. I think this is because the original intent was that the GlyphBrush would do the drawing, as that's what the original glyph_brush crate was for.
On that particular topic, we could combine the measure, queue_text and process_queued functions on TextPipeline into a single function (let's just call this queue_text), as we're effectively doing all of these operations sequentially without ever "yielding" so to speak. Additionally, we could let the TextPipeline/GlyphBrush end up handling the drawing at the end. Here's what I imagine:

in text_system in bevy_ui::stage::UI:

for each entity, TextPipeline::queue_text:

calculates the SectionGlyphs,
calculates the size,
builds the OutlineGlyphs,
constructs the *Atlases and Textures (ideally support this from multiple threads)
calculates the PositionedGlyphs
it inserts (overwriting) these onto a queue: HashMap<Entity, Vec<PositionedGlyph>> (ideally support this from multiple threads)

The only output from queue_text back into the ECS (text_system) is size, i.e.if let Ok(size) = text_pipeline.queue_text(entity, /* ... */) {
    calculated_size.size = size;
}

Otherwise, all the state is held within the TextPipeline/GlyphBrush.
Within queue_text you could make extensive use of caching and memoisation.

in draw_text_system in bevy_render::stage::DRAW:

for each entity, run some new function e.g. TextPipeline::draw_text, and pass in all of:mut context: DrawContext,
msaa: Res<Msaa>,
mut render_resource_bindings: ResMut<RenderResourceBindings>,
mut asset_render_resource_bindings: ResMut<AssetRenderResourceBindings>,

as well as:entity: Entity,
position: Vec3,
draw: Draw,
color: Color,

i.e.let text_pipeline = text_pipeline.draw_text(
    &mut context,
    &msaa,
    &mut render_resource_bindings,
    &mut asset_render_resource_bindings,
    entity,
    position,
    &mut draw,
    color,
);

This function would then

pull the PositionedGlyphs from its queue for that particular entity,
construct the DrawableText for the entity, and call the DrawableText::draw() method

You could probably change the order of this a bit and process it in a batch.

@tigregalis
I do agree with the first part, including this :

Additionally, we could let the TextPipeline/GlyphBrush end up handling the drawing at the end

While I agree with the concept of letting bevy_text's TextPipeline store the glyphs, the solution described afterwards would - in my opinion - work well for bevy_ui only. My intent with this PR was also to allow non-bevy_ui approaches to text rendering, such as iced and imgui, where using multiple Entities doesn't make sense (I have some ideas on how to integrate with an ECS for those framework, but that's beside the point).
If we want to go this way and make the TextPipeline modular, in my opinion, we should have bevy_text store in a HashMap (as you mentioned) any identifier for the text, as a generic, and the value would be the PositionedGlyph. That way bevy_ui can set this to be an Entity, and alternative UI backends can set this to be any kind of relevant information/identifier they want.

@AlisCode

If we want to go this way and make the TextPipeline modular, in my opinion, we should have bevy_text store in a HashMap (as you mentioned) any identifier for the text, as a generic, and the value would be the PositionedGlyph. That way bevy_ui can set this to be an Entity, and alternative UI backends can set this to be any kind of relevant information/identifier they want.
Yeah, I like it.

How straightforward do you think it would be to have "in-game" sprite text for 2d and 3d games?

I dont think it will exactly be straightforward : 2D text will indeed be very simple since it does not differ from rendering on the UI, we can essentially reuse DrawableText, while 3D text will require rendering to a texture.
I'm not sure if bevy supports that sort of thing out of the box (but I would assume not), I also dont know if there's a correct way of supporting this (maybe it's just as stupid as copying pixels to the render texture).
In any case, I'm not sure where this should go. Using a generic on TextPipeline means that any UI plugin (bevy_ui or other) will have to define their TextPipeline resource. Should the definition of in-game sprite lie in bevy_ui then ?

For rendering to a texture, I don't understand it 100% but I think that's what's already being done. I might be wildly off the mark, but if I understand correctly it's drawing to a texture which is applied to a quad mesh, and that's actually what gets rendered. On that same note, even in 2d, perhaps it would be useful to provide functionality to bake in certain text onto a newly spawned mesh, and that mesh would act as any other sprite.
I think it's fair that TextPipeline<Entity> is inserted in bevy_text::TextPlugin, since the Entity component is a core part of bevy_ecs which underpins the engine. Other plugins that want to make use of TextPipeline<SomeOtherKey> will have to insert their own resource.
As for in-game sprite text, that could be provided via an extra two systems that largely mimic what's in bevy_ui. Those systems could potentially be provided by bevy_text::TextPlugin, as bevy_text already depends on bevy_sprite, but conversely, in-game sprite text should have no requirement on bevy_ui.

I dont think this is rendering to a target texture. I think the QUAD_HANDLE is just a handle to a Mesh that's inserted by default in the Mesh assets, and allows to draw .. well, a quad. Without re-allocating every time.
I'm done with the refactor, and found the API to be overall much simpler. Most notably :

The queue_text function does not return anything. It just computes the glyphs using the GlyphBrush (see below), and stores them in a HashMap owned by the TextPipeline.
Refactored GlyphBrush so that we now have :

compute_glyphs, which gives a Vec<SectionGlyph> (ab_glyph's specific types)
process_glyphs, which computes the Vec<PositionedGlyph> given a Vec<SectionGlyph>.
The TextPipeline then measures the size of the output, and stores it inside its HashMap, together with the glyphs, forming a TextLayoutInfo.

GlyphBrush logic is somewhat separated from the TextPipeline. The goal of having ab_glyph's implementation details being abstracted away is reached (the user of a TextPipeline does not need ab_glyph details) which sounds reasonable. I'm not sure where the caching - if we implement caching, that is - needs to be implemented. I suggest we keep that for a different PR. Caching will need benchmarks to show that it is indeed more performant. There's also a lot of possible work GlyphBrush-wise to avoid recomputing the whole layout of a text when we just change e.g. one letter.
Ho btw, when we fail to add a glyph to the text atlas, we switched from a panic in the font_atlas code to an error that flows to the user of the TextPipeline, who can now handle the error properly (though in most cases, such an error seems to indicate that something is going very wrong)

I still have two issues to tackle (but that should be fairly trivial now) :

The NoSuchFont error by re-implementing the QueuedText local resource (this is my next commit).
Right now, the TextPipeline needs to be mutably-borrowed to add text to it. As I previously mentioned, in all theory, we should be able to add text to the queue from multiple threads. This is as simple a refactor as using Mutexes, I believe.

These changes all sound good. For now lets not add mutexes. I add rather add them later when they have been shown to be measurably better for common use cases.

@cart ack. I'll rebase on master now. Once this is done and since the NoSuchFont error has been fixed, I think this is good for another round of review if necessary :)
I tested that the error was gone by adding (0..10000000).for_each(|_| {}); in the FontLoader so that it takes time to load the font, and the behaviour is correct (No text is shown until the font is effectively loaded, and no crash).

All good ! :)

I'm cool with suppressing the clippy error btw. #[allow(too_many_arguments)]

Alrighty I think this is good to go! I pushed two small changes:

removed the unused glyph_to_index hashmap
removed declarations of text alignment from examples where the size isn't explicitly defined, which means size==text_bounds, which means alignment doesnt matter

Thanks for the awesome work! You've resolved a pretty major papercut here :smile:

Oops I forgot about those things... The minor tweaks are looking good to me :)
Glad I could contribute to something of use for the engine !
Feel free to merge :)


Upgrade yargs to address vulnerability in mem.

https://snyk.io/test/npm/yargs/10.1.2

Thank you

Thanks for merging the PR.
On Sun, Sep 9, 2018 at 2:49 PM Estevão Soares dos Santos <
<EMAIL_ADDRESS>wrote:

Merged #580 https://github.com/showdownjs/showdown/pull/580 into master.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/showdownjs/showdown/pull/580#event-1834712503, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AHk0MSOdfws7Gvr8K3f76_U5cNLpQA_aks5uZXDJgaJpZM4Wfm-1
.

Closes #580

Closes #581


Exclude downloading videos with a specific word in the title

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm asking a question and not reporting a bug or requesting a feature
[X] I've looked through the README
[X] I've verified that I have updated yt-dlp to nightly or master (update instructions)
[X] I've searched known issues and the bugtracker for similar questions including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Please make sure the question is worded well enough to be understood
Hi
I'm trying to download a YouTube channel but I want to exclude the word "2016" or "Server 2016" from being downloaded
The code that I'm trying to use is:
yt-dlp.exe -vU --paths "C:\courses" --match-filter "_type!=video" --match-title "2016" --skip-download "https://www.youtube.com/@MSFTWebCast/videos"
The result is not downloading any of the videos if it's matched the filter or if it's not! And I'm not sure what I'm missing here.
Thanks in advance
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[ ] If using API, add 'verbose': True to YoutubeDL params instead
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
[download] "15.  How to Create a Self Signed Certificate in IIS 10 | Windows Server 2019" title did not match pattern "2016"
[download] "14.  Publish the CRL and AIA Location on a Separate Web Server" title did not match pattern "2016"
[download] "13.  Recover lost private key using Key Archival | Windows Server 2019" title did not match pattern "2016"
[download] "12.  Enable Key Archival for a Certificate Authority | Windows Server 2019" title did not match pattern "2016"
[download] "11.  Verify PKI health for the issued certificate | Test OCSP and CRL Access" title did not match pattern "2016"
[download] "10.  Install and Configure the OCSP Responder Role service" title did not match pattern "2016"
[download] "09.  Install and Configure Enterprise Subordinate Root CA  Part-2" title did not match pattern "2016"
[download] "08.  Install and Configure Enterprise Subordinate Root CA  Part-1" title did not match pattern "2016"
[download] "07.  Install and Configure Offline Standalone Root Certificate Authority" title did not match pattern "2016"
[download] "06.  Lab Setup to Deploy a Two-Tier PKI Environment on Windows Server 2019" title did not match pattern "2016"
[download] "05.  Create and Deploy RDP TLS Certificate with GPO" title did not match pattern "2016"
[download] "04.  Set Up Custom User Certificate Template with Auto Enrollment" title did not match pattern "2016"
[download] "03.  Set Up Automatic Computer Certificate Enrollment in Windows Server 2019" title did not match pattern "2016"
[download] "02. Installing an Enterprise Root Certificate Authority | Windows Server 2019" title did not match pattern "2016"
[download] "01. Setup a Standalone Root Certificate Authority | Windows Server 2019" title did not match pattern "2016"
[download] "Configure DNSSEC in Testlab using AD Integrated DNS Zone" title did not match pattern "2016"

--match-title will filter for results where the title DOES match the pattern argument
why are you passing --match-filter "_type!=video" ?
don't pass that, any only pass --match-filter "title!*=2016"

@bashonly  That's worked :) thanks for your reply, much appreciated it


Update wiki exporter to 1.2.0

Build failed; the context from the latest run is:
Expand to view
[2019-11-13T00:33:51.628Z] Pull request #60 opened
[2019-11-13T00:33:51.670Z] Connecting to https://api.github.com using jenkinsadmin/****** (GitHub access token for jenkinsadmin)
[2019-11-13T00:33:52.157Z] Connecting to https://api.github.com to check permissions of obtain list of zbynek for jenkins-infra/charts
[2019-11-13T00:33:52.362Z] Loading trusted files from base branch master at ce199100bcf25308c3585bd85392c82e500c5073 rather than 86f0cc9ec4765b4dc2a8593822933cb3cda03e2f
[2019-11-13T00:33:53.671Z] Obtained Jenkinsfile from ce199100bcf25308c3585bd85392c82e500c5073
[2019-11-13T00:33:54.144Z] Running in Durability level: MAX_SURVIVABILITY
[2019-11-13T00:33:54.176Z] Loading library pipeline-library@master
[2019-11-13T00:33:54.176Z] Attempting to resolve master from remote references...
[2019-11-13T00:33:54.218Z] Found match: refs/heads/master revision 01483fac87fd7367d39ff00836c8dec453efaa91
[2019-11-13T00:33:54.219Z] No credentials specified
[2019-11-13T00:33:54.220Z] Cloning the remote Git repository
[2019-11-13T00:33:54.220Z] Cloning with configured refspecs honoured and without tags
[2019-11-13T00:33:54.349Z] remote: Enumerating objects
[2019-11-13T00:33:54.352Z] Receiving objects
[2019-11-13T00:33:54.389Z] Resolving deltas
[2019-11-13T00:33:54.533Z] Updating references
[2019-11-13T00:33:54.545Z] Fetching without tags
[2019-11-13T00:33:54.591Z] Checking out Revision 01483fac87fd7367d39ff00836c8dec453efaa91 (master)
[2019-11-13T00:33:54.613Z] Commit message: "Merge pull request #115 from jglick/patch-2"
[2019-11-13T00:33:54.615Z] First time build. Skipping changelog.
[2019-11-13T00:33:56.959Z]
[2019-11-13T00:33:56.959Z] GitHub has been notified of this commit’s build result
[2019-11-13T00:33:56.959Z]
[2019-11-13T00:33:56.960Z] org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
[2019-11-13T00:33:56.960Z] WorkflowScript: 3: Invalid agent type "kubernetes" specified. Must be one of [any, docker, dockerfile, label, none] @ line 3, column 5.
[2019-11-13T00:33:56.960Z]        kubernetes {
[2019-11-13T00:33:56.960Z]        ^
[2019-11-13T00:33:56.960Z]
[2019-11-13T00:33:56.960Z] 1 error
[2019-11-13T00:33:56.960Z]
[2019-11-13T00:33:56.960Z] 	at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:310)
[2019-11-13T00:33:56.960Z] 	at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1085)
[2019-11-13T00:33:56.960Z] 	at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:603)
[2019-11-13T00:33:56.960Z] 	at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:581)
[2019-11-13T00:33:56.960Z] 	at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:558)
[2019-11-13T00:33:56.960Z] 	at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298)
[2019-11-13T00:33:56.960Z] 	at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268)
[2019-11-13T00:33:56.960Z] 	at groovy.lang.GroovyShell.parseClass(GroovyShell.java:688)
[2019-11-13T00:33:56.960Z] 	at groovy.lang.GroovyShell.parse(GroovyShell.java:700)
[2019-11-13T00:33:56.960Z] 	at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.doParse(CpsGroovyShell.java:142)
[2019-11-13T00:33:56.960Z] 	at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.reparse(CpsGroovyShell.java:127)
[2019-11-13T00:33:56.960Z] 	at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.parseScript(CpsFlowExecution.java:561)
[2019-11-13T00:33:56.960Z] 	at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.start(CpsFlowExecution.java:522)
[2019-11-13T00:33:56.960Z] 	at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:327)
[2019-11-13T00:33:56.960Z] 	at hudson.model.ResourceController.execute(ResourceController.java:97)
[2019-11-13T00:33:56.960Z] 	at hudson.model.Executor.run(Executor.java:429)
[2019-11-13T00:33:56.960Z] Finished: FAILURE

Powered by the Comment Logger


Isolate dependency on openeye tools

As we incorporated sidechain moves, we introduced a dependency on the OpenEye toolkits. We should isolate this so it is only a dependency if sidechain moves are utilized so that people can use the package (though not sidechain moves) without the OE toolkits.

Putting this here for reference. Seems like if we wrap the import of the OpenEye toolkits in a try/except clause we can isolate this dependency
https://github.com/choderalab/openmoltools/blob/master/openmoltools/tests/test_openeye.py#L18


The Hyperlink can not bring out the right page/

When we use right button of mouse to open the hyperlink "Contract Call (Automatically Generated)", we would arrive at "https://aitos-io.github.io/BoAT-X-Framework/#/en-us/BoAT_User_Guide_en", why not come to the "contract-call-(automatically-generated)" directly?

Same issue to #696.


Add support for Rust 2021.

This adds 2021 in all places where rust-analyzer already knew about 2015 and 2018.
The only edition-specific behaviour I could find in the source code was gated on a direct comparison with Edition2015, so Edition2021 should (correctly) behave the same as Edition2018:
https://github.com/rust-analyzer/rust-analyzer/blob/56a7bf7ede12f6bec194265ea4a95911c9e469bd/crates/hir_def/src/nameres/path_resolution.rs#L132

Thank you!
bors r+

Thank you!
bors r+

bors r+

bors r+


Updating version to 1.1.0 and patching update_version

and patching update_version to include the extension from version.h

Is TF 1.1.0 formally out? We see the packages on PyPI and the images on Docker Hub.

We are in the process of officially releasing it with docs as well.


Update docs to reflect the removal of the "Community" milestone

PR template metions that issues with 'Bug' or 'help wanted' can be picked up (https://github.com/Microsoft/TypeScript/commit/4fb370d944f4b197f08553d9ea6193b65e540542#diff-6bbbbaf49258c5f6252cb684d47d16f4R5)
Probably both places should should be in sync


Test Github actions

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@c24e35e). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main       #1   +/-   ##
=======================================
  Coverage        ?   49.33%
=======================================
  Files           ?        6
  Lines           ?      150
  Branches        ?        0
=======================================
  Hits            ?       74
  Misses          ?       68
  Partials        ?        8

Flag
Coverage Δ

unittests
49.33% <0.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update c24e35e...3e56d3e. Read the comment docs.


Adds data:migrate task

Context
Using migration files to run one off services to update data will make the services permanent dependencies of the project.
Using a rake task instead to perform any migrations, enables us to add/remove any data updating services as we see fit.
As the task is configured to be executed after db:migrate exits, it also eliminates the need to either have to configure or manually run any data migrations on any environment.
UPDATE
Extended PR to add a DataMigration model that tracks data migrations and enables us to check that they've not run before, and a generator that deals with creating the new service in the expected format. It also updates the data migration rake task with the new service, simplifying the process, as developers don't need to be concerned about any configuration but simply implement their changes in the generated service and test them.
Changes proposed in this pull request
Adds a data:migrate rake task and configures it to be executed after db:migrate
Related PR
https://github.com/DFE-Digital/apply-for-teacher-training/pull/4057
Things to check

[x] This code does not rely on migrations in the same Pull Request
[x] If this code includes a migration adding or changing columns, it also backfills existing records for consistency
[x] API release notes have been updated if necessary
[x] New environment variables have been added to the Azure config

@cwrw I wonder if we could benefit from a more elaborate solution which would also enable us to track what environment and when any data migrations took place - but still make it easy to remove the services when they are no longer required.
Here is a suggested solution to this problem (a very light implementation of how db:migrate works):
https://github.com/DFE-Digital/apply-for-teacher-training/compare/data-migration-process?expand=1
This PR adds a DataMigration model that tracks data migrations and enables us to check that they've not run before, and a generator that deals with creating the new service in the expected format. It also updates the rdata migration rake task with the new service, simplifying the process, as developers don't need to be concerned about any configuration but simply implement theire changes in the generated service and test them.

@tijmenb @duncanjbrown @davidgisbey any feedback on this would be appreciated

I like the conventions introduced by the generator, encouraging the use of a tested service for data migrations. I also think some kind of mechanism to track whether a given service has been executed on an environment is a good idea. 👍🏼
I have reservations about enhancing db:migrate. If I'm not mistaken, this still holds true for our deployment process (perhaps @duncanjbrown or @vigneshmsft can confirm). Running several concurrent data migrations doesn't seem like desirable behaviour. I'd prefer to have manual control on the execution of a data migration service, probably via the Rails runner (eg—rails r ServiceName.call). This also addresses @cwrw 's concern regarding long-running data tasks and the impact they'll have on deployment times.
Also, maybe the generated service could include a reminder to add an audit comment?

@malcolmbaig thank you for your feedback. However, I do think that for most migrations we would prefer them to run as part of the deployment process (as we have been doing up to now as well), so maybe I can extend the generated service to include a configurable flag which would exclude a service from being executed by the automated task and allow developers to run their service manually instead.
To ensure consistency across manual and automated migration tasks we should probably extend the existing rake task so i t supports running individual tasks manually (so they run in a single transaction, are tracked on the migration model and relate to an audit entry and can't be run more than once), so I'll look into extending the service to support that e.g. rake data:migrate[ServiceName]

Is it always the case that we want data migrations to run only once?

@benswannack as the goal of this is to eliminate the need for changing data through database migrations, which you can only run once, I think the answer is that yes, data migrations should only be executed once.
However, the service is flexible enough so that it will ran again if a the timestamp field on the service model is updated and released. That would also enable tracking the additional run of the service.
Definitely something to take into account though and maybe consider adding a new card if we want to extend the functionality suggested in this PR - if for any reason we think it's valuable.

Looks good, definitely worth adopting and seeing how we get on.
Just realised I should clarify an earlier comment:

Running several concurrent data migrations doesn't seem like desirable behaviour.

This was based on a misread of how this solution would interact with our deployment process. Overall I think this looks solid and meets the goal of adding more structure around data changes. 👍🏼
Agree with @cwrw on docs - would be good to see some markdown with a brief overview of the process and some steps.


HelperError: relative_url_for has not been defined in openness.html line 40

I get an internal server error when I hit my /report/openness link and the error log has the following in it:
File '/usr/lib/ckan/default/src/ckanext-qa/ckanext/qa/templates/report/openness.html', line 40 in top-level template code
  <td>{{ h.link_to(row['organization_title'], h.relative_url_for(organization=row['organization_name'])) }}</td>
File '/usr/lib/ckan/default/lib/python2.7/site-packages/jinja2/environment.py', line 412 in getattr
  return obj[attribute]
File '/usr/lib/ckan/default/src/ckan/ckan/lib/helpers.py', line 62 in __getitem__
  key=key
HelperError: Helper 'relative_url_for' has not been defined.

I am running 2.6.0 on Ubuntu 14.04 an have the latest version of the QA, Report and Archiver plugins installed.

The same happens to me. Did you manage to fix it?

I'll be able to test the fix in #42 tomorrow when I am back on the box.

Yes, that fixes the error.  Thank you very much.

@mixedbredie Many thanks for reporting this and checking the fix. Much appreciated.

That worked! Thanks


python code to extract face, left eye, right eye and face grid from multiple images

Hi, really appreciate if you could provide and share the python code to extract face, left eye, right eye and face grid from multiple images (or video / sequence of image frame). In short image.jpg to face.npy, LeftEye.npy, RightEye.npy and FaceGrids.npy. (or .npz file)

Hi @lii08 , I actually do not have the code. I used a dataset shared by someone else. You might want to turn to the original authors for help. Good luck!


MOO - Result returning variables & objective function in a 2 D array of shape n_population x n_var

Hi, tried running the following sample code from your documentation on MOO, instead of getting a single list of X variables and single list of Objective Function value, I am getting a 2D array. Below is the code I have used.
`import numpy as np
from pymoo.core.problem import ElementwiseProblem
class MyProblem(ElementwiseProblem):
  def __init__(self):
      super().__init__(n_var=2,
                       n_obj=2,
                       n_constr=2,
                       xl=np.array([-2,-2]),
                       xu=np.array([2,2]))

  def _evaluate(self, x, out, *args, **kwargs):
      f1 = 100 * (x[0]**2 + x[1]**2)
      f2 = (x[0]-1)**2 + x[1]**2

      g1 = 2*(x[0]-0.1) * (x[0]-0.9) / 0.18
      g2 = - 20*(x[0]-0.4) * (x[0]-0.6) / 4.8

      out["F"] = [f1, f2]
      out["G"] = [g1, g2]

problem = MyProblem()
from pymoo.algorithms.moo.nsga2 import NSGA2
from pymoo.factory import get_sampling, get_crossover, get_mutation
algorithm = NSGA2(
pop_size=40,
n_offsprings=10,
sampling=get_sampling("real_random"),
crossover=get_crossover("real_sbx", prob=0.9, eta=15),
mutation=get_mutation("real_pm", eta=20),
eliminate_duplicates=True
)
from pymoo.factory import get_termination
termination = get_termination("n_gen", 40)
from pymoo.optimize import minimize
res = minimize(problem,
algorithm,
termination,
seed=1,
save_history=False,
verbose=False)
X = res.X
F = res.F
print("Best solution found: \nX = %s\nF = %s" % (res.X.astype(int), res.F))`
And below are the results
Best solution found:
X = [[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]
[0 0]]
F = [[1.33777950e+00 7.83176782e-01]
[7.49722343e+01 1.80917953e-02]
[3.70090453e+01 1.65245338e-01]
[1.59772304e+01 3.67434224e-01]
[2.75433130e+00 7.17173694e-01]
[3.85695705e+00 6.51700984e-01]
[5.43505331e+00 6.04183995e-01]
[6.37015084e+00 5.62155296e-01]
[1.20702397e+01 4.25964612e-01]
[5.18540004e+01 7.83551559e-02]
[1.07935918e+01 4.61848532e-01]
[7.10406068e+01 2.60131655e-02]
[7.30276970e+00 5.42694093e-01]
[6.16492618e+01 4.64117085e-02]
[4.93555405e+01 8.86513322e-02]
[8.72871259e+00 4.98860929e-01]
[8.35897239e+00 5.18018440e-01]
[9.87783586e+00 4.72430621e-01]
[4.40623888e+01 1.13355505e-01]
[3.88115154e+01 1.47843920e-01]
[6.52538731e+01 3.70591049e-02]
[4.32805943e+01 1.22448782e-01]
[4.68201561e+01 1.01330088e-01]
[4.05308005e+01 1.32181335e-01]
[1.34388123e+01 4.11338836e-01]
[1.46890691e+01 3.80949682e-01]
[5.61228212e+01 6.44415510e-02]
[1.86508504e+00 7.53947141e-01]
[6.31774695e+01 4.33147569e-02]
[4.39852133e+00 6.28247039e-01]
[5.86364125e+01 5.96996956e-02]
[2.11319599e+00 7.38315234e-01]
[1.39340678e+01 3.95602495e-01]
[5.42123732e+01 6.96718904e-02]
[4.77250188e+01 9.71835682e-02]
[6.95836576e+01 3.00581296e-02]
[1.60394639e+00 7.80756111e-01]
[3.97927791e+01 1.38060202e-01]
[6.74946795e+01 3.20685135e-02]
[5.85221106e+01 6.00548187e-02]]

The output is as expected. The res.X is a 2D matrix where each row represents a solution (sol x problem.n_dim) and the objectives res.F is a 2D matrix (sol x problem.n_obj). If you plot the solutions you see it is the right result.

import numpy as np

from pymoo.algorithms.moo.nsga2 import NSGA2
from pymoo.core.problem import ElementwiseProblem
from pymoo.factory import get_sampling, get_crossover, get_mutation
from pymoo.factory import get_termination
from pymoo.optimize import minimize
from pymoo.visualization.scatter import Scatter

class MyProblem(ElementwiseProblem):

    def __init__(self):
        super().__init__(n_var=2,
                         n_obj=2,
                         n_constr=2,
                         xl=np.array([-2, -2]),
                         xu=np.array([2, 2]))

    def _evaluate(self, x, out, *args, **kwargs):
        f1 = 100 * (x[0] ** 2 + x[1] ** 2)
        f2 = (x[0] - 1) ** 2 + x[1] ** 2

        g1 = 2 * (x[0] - 0.1) * (x[0] - 0.9) / 0.18
        g2 = - 20 * (x[0] - 0.4) * (x[0] - 0.6) / 4.8

        out["F"] = [f1, f2]
        out["G"] = [g1, g2]

problem = MyProblem()

algorithm = NSGA2(
    pop_size=40,
    n_offsprings=10,
    sampling=get_sampling("real_random"),
    crossover=get_crossover("real_sbx", prob=0.9, eta=15),
    mutation=get_mutation("real_pm", eta=20),
    eliminate_duplicates=True
)

termination = get_termination("n_gen", 40)

res = minimize(problem,
               algorithm,
               termination,
               seed=1,
               save_history=False,
               verbose=False)

print("Best solution found: \nX = %s" % (res.X))

plot = Scatter()
plot.add(problem.pareto_front(), plot_type="line", color="black", alpha=0.7)
plot.add(res.F, facecolor="none", edgecolor="red")
plot.show()

Okay, I am trying to solve a sample binary variable problem, where I need to select the maximum shortage value for various materials and I have to minimize the sum of all those maximum shortages across all the materials. Can you please check my code and let me know how to infer the output. `import numpy as np
from pymoo.algorithms.moo.nsga2 import NSGA2
from pymoo.core.problem import ElementwiseProblem
from pymoo.factory import get_sampling, get_crossover, get_mutation
from pymoo.factory import get_termination
from pymoo.optimize import minimize
from pymoo.visualization.scatter import Scatter
class MyProblem(ElementwiseProblem):
def __init__(self):
    super().__init__(n_var=4,
                     n_obj=3,
                     n_constr=2,
                     xl=anp.array([0,0,0,0]), #0
                     xu=anp.array([1,1,1,1]), # 1,#anp.array([1,1,1,1]),
                     type_var=bool
                    )

def _evaluate(self, X, out, *args, **kwargs):
    f1 = -(X[0]*130 + X[1]*120) # max shortage for fg1
    f2 = -(X[2]*70 + X[3]*90) # max shortage for fg2
    f3 = -(f1+f2) # minimum shortage cost at overall
    g1 = ((X[0] + X[1]) - 1)**2 # select one comp for fg1
    g2 = ((X[2] + X[3]) - 1)**2 # select one comp for fg2
    out["F"] = anp.column_stack([f1,f2,f3])
    out["G"] = anp.column_stack([g1,g2]) #anp.column_stack([g1,g2])

problem = MyProblem()
algorithm = NSGA2(
pop_size=40,
n_offsprings=10,
sampling=get_sampling("bin_random"),
crossover=get_crossover("bin_two_point"),
mutation=get_mutation("bin_bitflip"),
eliminate_duplicates=True
)
termination = get_termination("n_gen", 40)
res = minimize(problem,
algorithm,
termination,
seed=1,
save_history=False,
verbose=False)
print("Best solution found: \nX = %s" % (res.X.astype(int)))
print("Best solution found: \nF = %s" % (res.F))
plot = Scatter()
plot.add(problem.pareto_front(), plot_type="line", color="black", alpha=0.7)
plot.add(res.F, facecolor="none", edgecolor="red")
plot.show()`

why would you choose exactly that solution?
You are defining a three-objective problem and all solutions are indifferent to each other. Is there maybe anything else the algorithm shall consider?

I need to get the maximum value out of the two variables in each of the first two objective function, also at the same time have to minimize the 3rd objective function.

So why not redefining your problem to have two objectives: np.max(f[:2]) will be f1 then and f[:,3] be f2.
If the new objectives are conflicting, you will still get a non-dominated set of solutions.

Thanks, Julian. It worked :)

Great! Glad to help.


Feature : Print all project employee ID Cards

###Expected Behaviour
User may able to print all employees ID Card in one print click.

Fixed.


Sending $params to $user->can() in AccessRule

Hi
Should not we have a way to send params to access rules when configuring them as a controller's behaviour?
For example in your [guide] (http://www.yiiframework.com/doc-2.0/guide-security-authorization.html) you are creating updateOwnPost rule which is expecting postId param. But we don't have a way to send this param when configuring rules this way:
    public function behaviors()
    {
        return [
            'access' => [
                'class' => AccessControl::className(),
                'rules' => [
                    [
                        'actions' => ['update'],
                        'allow' => true,
                        'roles' => ['admin', 'updatePost', 'updateOwnPost'],
                    ],

In AccessRule class we just [call] (https://github.com/yiisoft/yii2/blob/master/framework/filters/AccessRule.php#L152) can() method without any params.
So updatePost will not resolve with updateOwnPost as we cannot send postId.
Is it a bad practice and i have to use the following right in the action?
if (\Yii::$app->user->can('updatePost', ['post' => $post])) {
    // update post
}

I would prefer to keep all access assigning in one place.

I am currently doing it like that:
    public function behaviors()
    {
        return [
            'access' => [
                'class' => AccessControl::className(),
                'rules' => [
				[
					'actions' => ['create', 'quick-create'],
					'allow' => true,
					'matchCallback' => function($rule, $action) {
						return Yii::$app->user->can('task:create', ['project' => $action->controller->findProject()]);
					},
				],
...

Right, i can use that, thank you.


Typo in description of "Text Case Converter and Inspector" on All Tools

@mpozderac
Thank you!!! This PR was merged!
https://github.com/ObuchiYuki/DevToysMac/pull/31/commits/ba9bb62e9fad23e63d490d0684ef88725266689a


Added Speed Controls

Added the speed controls option in PlayerActivity to allow video speed ranging from 0.25x to 2x.

Nice. You should try to reformat the code and optimize imports. Still Cool.


Add an "install" script to the docker engine images

or at least a manifest - #1815 and https://github.com/rancher/os/blob/master/cmd/control/console_init.go#L93 are not a reasonable way to do this - most of those files don't exist in 1.10.3, and only the engine image knows what it has inside it.

and install the bash completion files....


Filter out non-command packages

This is the technical counterpart of #1, only pkg.go.dev has this info but it doesn't come up with an API, so it's not ideal (and will also likely be slower than deps.dev).

Might also help to search for cmd/$q instead of just $q and looks like deps.dev is only returning modules and not packages (https://deps.dev/_/search?system=GO&kind=PACKAGE&q=benchstat, for example)?

Also, looks like we issue 5 queries of 20 in search.go, don't exactly remember why (might as well issue a single query of 100 defensively? https://deps.dev/_/search?system=GO&kind=PACKAGE&page=0&perPage=100&q=test)

At this point it looks like we may need to scrape https://pkg.go.dev/search?m=package&limit=100&q=benchstat (while also following "other packages in module"). If we need the latest version to display, we could get it from https://proxy.golang.org/github.com/avamsi/climate/cmd/cligen/@latest (but looks like it doesn't work for https://proxy.golang.org/golang.org/x/perf/cmd/benchstat/@latest for whatever reason?! -- https://pkg.go.dev/golang.org/x/perf/cmd/benchstat?tab=versions seems like it could work though).

Various tabs of https://pkg.go.dev are lighter than others (for example the imports tab) but they don't have version information. At the moment we hit the "main" page, which has (at times truncated) version information (similar to the search results page).
https://godocs.io is another possibility but it seems stale by default, which is not ideal.

In any case, I think we can sort of consider this done now.


Is the firewall rule for network rule or application rule? It's not clear and hard to follow

HI team,
https://learn.microsoft.com/en-us/azure/machine-learning/how-to-access-azureml-behind-firewall?tabs=ipaddress%2Cpublic#microsoft-hosts
For the firewall config, is it for network rule, or application rule in Azure firewall?
If it's application rule, how to configure port 8787 and 18881?

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

ID: 2eeeb5a8-3587-0932-0d80-6a47414c82c6
Version Independent ID: 34958145-3803-c078-c1e2-798169b329b2
Content: Configure inbound and outbound network traffic - Azure Machine Learning
Content Source: articles/machine-learning/how-to-access-azureml-behind-firewall.md
Service: machine-learning
Sub-service: enterprise-readiness
GitHub Login: @jhirono
Microsoft Alias: jhirono

@Jessieliu111
Thanks for your feedback! We will investigate and update as appropriate.

@Jessieliu111
We are going to close this thread as resolved but if there are any further questions regarding the documentation, please tag me in your reply and we will be happy to continue the conversation.


DOC: remove warnings in doc build

Reference issue
Another approach to fix CI as alternatives to #18471 and #18472
What does this implement/fix?
Some small fixes in docstrings to avoid warnings.

For some reason I'm still unable to reproduce the doc build failure from #15755 locally, let's see what CI does.

@h-vetinari
There are still some reported warnings in the sphinx build I haven't fixed now.
One example is https://github.com/scipy/scipy/blob/main/scipy/stats/_stats_py.py#L1692 which even mentions that a warning is thrown. How should we handle this cases?

To get CI green, it's OK with me to revert the changes to these examples made in gh-17765. With the introduction of notebook tutorials, we plan to move these detailed examples to tutorials, anyway. CC @tupui.

Still having issues with cosine and bohman:
https://output.circle-artifacts.com/output/job/e748756c-73da-4977-a466-32c21b2b119e/artifacts/0/html/reference/generated/scipy.signal.windows.bohman.html#scipy.signal.windows.bohman
https://output.circle-artifacts.com/output/job/e748756c-73da-4977-a466-32c21b2b119e/artifacts/0/html/reference/generated/scipy.signal.windows.cosine.html#scipy.signal.windows.cosine
seems strange to me, as these weren't touched since a while.
Any ideas?
If I test the example code locally I don't get any warning.

One thing that I noted in the logs of all the failing runs (and not present in the passing ones) are the following weird-looking warnings:
reading sources... [ 10%] reference/generated/scipy.integrate.ode.set_integrator .. reference/generated/scipy.interpolate.LinearNDInterpolator.__call__
<string>:19: DeprecationWarning: invalid escape sequence \s
reading sources... [ 13%] reference/generated/scipy.interpolate.NdPPoly .. reference/generated/scipy.io.mminfo
reading sources... [ 16%] reference/generated/scipy.io.mmread .. reference/generated/scipy.linalg.blas.zher
reading sources... [ 20%] reference/generated/scipy.linalg.blas.zher2 .. reference/generated/scipy.linalg.lapack.chesv_lwork
reading sources... [ 23%] reference/generated/scipy.linalg.lapack.chesvx .. reference/generated/scipy.linalg.lapack.dpbtrf
<string>:50: DeprecationWarning: invalid escape sequence \d
<string>:46: DeprecationWarning: invalid escape sequence \l
reading sources... [ 26%] reference/generated/scipy.linalg.lapack.dpbtrs .. reference/generated/scipy.linalg.lapack.sormrz
<string>:46: DeprecationWarning: invalid escape sequence \,
<string>:46: DeprecationWarning: invalid escape sequence \,
<string>:50: DeprecationWarning: invalid escape sequence \d
<string>:30: DeprecationWarning: invalid escape sequence \i
<string>:25: DeprecationWarning: invalid escape sequence \i
<string>:25: DeprecationWarning: invalid escape sequence \i
<string>:42: DeprecationWarning: invalid escape sequence \c
<string>:42: DeprecationWarning: invalid escape sequence \c
<string>:22: DeprecationWarning: invalid escape sequence \P
reading sources... [ 30%] reference/generated/scipy.linalg.lapack.sormrz_lwork .. reference/generated/scipy.linalg.lapack.zhegvd

Unfortunately it's not clear at all to me from which docstring they come from.

Still having issues with cosine and bohman

Aside from that very tenuous lead, I have no idea what's affecting the bohman plot. Even more mysteriously, the cosine one is also missing for #18472, but present for #18471

I can see the deprecation warnings in my local build too, but doesn't fail doc build.
There's some really weird caching somewhere.

@FranzForstmayr, sorry for force-pushing your branch, but it was conflicting after #18472 got merged. I added a revert for that and based your changes on top. Feel free to rebase & force-push again if you want.

I approve the doc changes to normaltest and kurtosistest. This PR makes them approximately as they were before gh-17765

Normally I wouldn't advocate the removal of something useful, but since you suggested early on in this thread to revert those, I didn't look more closely at that. Now that we don't have the urgency or broken CI, should we take the time to remove the reverts and fix it properly? Or is that not worth the effort IYO?

If it's easy to revert the reverts, that would be best. I'm comfortable either way, though.

    warnings.warn("kurtosistest only valid for n>=20 ... continuing "
UserWarning: kurtosistest only valid for n>=20 ... continuing anyway, n=11

Can we increase n in the example?

This was part of the point of the example - to show what happens when the number of observations is too small.

I know it's ugly, but suppress the warning for a quick fix?

If it's the intention to showcase the "bad" case, I don't think suppressing the warning is bad per se

@mdhaber @j-bowhay, any remaining comments here? Aside from reinstating the lsmi2 etc. doc string examples, it's now really only very small changes to fix the currently existing warnings in the sphinx build.

Thanks everyone