On version management and Changelogs

With so many of us working concurrently on this project, I figure this is as good a time as any to figure out how releases should work. PR authors can and ought to update the changelog file as they make changes, but a proper "release" may span a series of PRs, and knowing whether one's own PR constitutes enough of a change to form a proper release is asking a lot.
There is tooling to parse a Keep a Changelog-compliant changelog file, both for Node and for GitHub Actions. I've written CI scripts that validate against the KaC spec for sanity, and then to deploy GitHub Releases and Git tags based solely on the contents of that file.
There are several ways to go about version management with this project, each with their pros and cons.
The easiest may be to set up a "rolling" release, on no particular schedule, where changes to main are deployed as-is and as they happen. This means that SemVer would be difficult to maintain unless we automated the process by using Conventional Commits with every code change. If we decided to break from SemVer for simplicity, we could use the first few characters of the commit hash, as provided by GitHub. Our CHANGELOG.md file would diverge from the KaC spec, as we would no longer adhere to SemVer, and parsers would break. (EDIT:) We could use natural titles for releases, and still utilize GitHub Milestones as with SemVer, but standardizing our process, if we want to do that, would be a challenge.
Another method would be to let main be a sort of "cutting edge" space, where the very latest of the project's code lives until we cut a release. We can use GitHub's Milestones feature to tag PRs for a specific future release version. We could use the wealth of existing tooling around SemVer and build release scripts around the KaC spec to make sure our releases are consistent, and a simple release PR to update the latest CHANGELOG entry from Unreleased to an appropriate SemVer version number and a date would trigger a GitHub Release and a tag.
I would prefer the latter method, though I'm making an issue here instead of a PR to ask y'all's opinions. I think a rolling frequent-release setup would be easy for devs, but asks a lot on the poor soul who runs the bot to have to SSH in and pull changes all the time. Even if we automated that part of the release, we'd need a separate PR anyway just to update the version number in the changelog file to reflect each PR's final Git hash for the release. Much easier, I think, to rely on SemVer and parsers to do the heavy lifting, and reduce the maintenance burden to a short command and some CI/CD scripts.
Regardless of which path we choose, whether these or ones I've not considered, I would like to start on a PR for something release-wise as soon as possible. Thoughts?

We've sortof established a pattern of making main our release branch. #81 adds CI/CD to enforce CHANGELOG.md internal consistency, and to automatically cut git tags and GitHub Releases as new versions roll in. CHANGELOG.md becomes the source-of-truth for this project's versioning.


Integrated terminal doesn't respect .nvmrc file

VSCode Version:
OS Version:

Steps to Reproduce:

Build any javascript project using with mac with NVM installed. Use node version other than one set with default alias.
When VSCode is started integrated terminal always starts the default version not respecting .nvmrc file in the project.

There is quite a bit of Stackoverflow discussion on this topic as well.
https://stackoverflow.com/questions/44700432/visual-studio-code-to-use-node-version-specified-by-nvm
https://stackoverflow.com/questions/54569606/vscode-nvm-complaining-about-a-prefix-option-when-the-integrated-terminal-is-lau
https://stackoverflow.com/questions/38671534/cannot-set-node-module-path-for-visual-studio-code
Expected behavior based on other editors I've used would be to automatically use whatever version is specified in the .nvmrc file.
I can fix the issues by running nvm use XXXX, but with next restart nvm version is incorrect again. To mitigate this is there a project level node part I can setup?

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

What OS and VS Code version are you on?

What OS and VS Code version are you on?

Hi, @Tyriar I'm using Hight Sierra 10.13.6 and VSCode 1.33.1.
This does happen extensions turned off as well, but I realized there I have one less of a standard piece of configuration in my side. My terminal of choice.
"terminal.external.osxExec": "Hyper.app",
I just also double check that I have nothing funny in my .bash_profile or .bashrc file which would seem unlikely as nvm works fine outside of VSCode.

I thought that this would mean error was due to Hyper.app terminal but changing my terminal settings in settings.json to
    "terminal.integrated.shell.osx":"/bin/bash",
    "terminal.explorerKind": "integrated",

Seem to make no difference.

@HintikkaKimmo if that extension fixes the problem that means you have a configuration issue as all it seems to do is run nvm use? You should looking into tweaking terminal.integrated.shellArgs.osx to either [] or [ "-l" ] and also looking into how nvm is setup in your .bashrc or .bash_profile files.


capitalization not preserved

Running electron-forge init MyApp results in an app named "myapp", not "MyApp".  When electron-forge make is later run, I have an app named "myapp.app", not "MyApp.app".
Is there a reason why electron forge does not respect the inputted capitalization?  Macintosh applications are typically capitalized, so I think it would be preferable to keep the user inputted capitalization.

@MareoRaft npm doesn't allow the name field to have capital letters, if you want the output from the make command to be titled differently you can set the productName field in your package.json to a human friendly / capitalized name 👍


post deploy reference data job

Just realized that we probably need a flag to disable this job for the unit tests... thinking about the right way to do it.


short php tags make this library not work with php7

hi, it seems that the short opening tags you're using (<?) are not compatible with php 7.2 (at least in my config)
changing everything to <?php solves the problem.
cheers, dan

Hi, thanks for the info. That's right, the standard way is using <?php for that.
Would you like to replace them and send me a pull request ?

done, sorry for mutiple commits - did it directly from the github web interface
https://github.com/ardabeyazoglu/php-push-helper/pull/2

No problem, thanks.


In nMigen Cfu, tie implicit "rst" to explicit "reset".

This is a suboptimal fix because the generated Verilog Cfu module will have both "rst" and "reset" ports.   This PR ties them together, so that even though only "reset" is driven by sys_rst, it gets passed to the "rst" net inside the Cfu.
Signed-off-by: Tim Callahan<EMAIL_ADDRESS>

It looks like this solves the issue I was seeing where Yosys optimised the whole design away, judging by the much longer pnr time and resource utilisation when I apply this patch. The design still doesn't work but I think that's a separate issue in my design.


libgee: 0.20.4 -> 0.20.5

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for libgee is: "Utility library providing GObject-based interfaces and classes for commonly used data structures"
meta.homepage for libgee is: "https://wiki.gnome.org/Projects/Libgee"
meta.changelog for libgee is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 0.20.5 with grep in /nix/store/6w5s9m7s1axa2bqsm7dp89zpawqs55yx-libgee-0.20.5

found 0.20.5 in filename of file in /nix/store/6w5s9m7s1axa2bqsm7dp89zpawqs55yx-libgee-0.20.5

Rebuild report (if merged into master) (click to expand)

169 total rebuild path(s)

158 package rebuild(s)

158 x86_64-linux rebuild(s)
11 x86_64-darwin rebuild(s)

First fifty rebuilds by attrpath
agenda
akira-unstable
appeditor
birdfont
bookworm
bubblemail
calls
ciano
cinnamon.cinnamon-common
cinnamon.cinnamon-gsettings-overrides
cinnamon.cinnamon-screensaver
cinnamon.cjs
cipher
cozy
dino
elementary-planner
empathy
ephemeral
fcitx-engines.skk
feedreader
folks
fondo
formatter
gencfsm
gitg
glom
gnome-2048
gnome-latex
gnome.anjuta
gnome.atomix
gnome.caribou
gnome.empathy
gnome.five-or-more
gnome.geary
gnome.gitg
gnome.gnome-calculator
gnome.gnome-contacts
gnome.gnome-klotski
gnome.gnome-maps
gnome.gnome-mines
gnome.gnome-nibbles
gnome.gnome-robots
gnome.gnome-sudoku
gnome.libgnome-games-support
gnome.rygel
gnome.swell-foop
gnome.tali
gnonograms
gtkd
gtkpod

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/6w5s9m7s1axa2bqsm7dp89zpawqs55yx-libgee-0.20.5 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A libgee https://github.com/r-ryantm/nixpkgs/archive/51b3cde7c0c487892ae9c8b48e6c5b24f42f9f35.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/6w5s9m7s1axa2bqsm7dp89zpawqs55yx-libgee-0.20.5
ls -la /nix/store/6w5s9m7s1axa2bqsm7dp89zpawqs55yx-libgee-0.20.5/bin

Pre-merge build results
NixPkgs review skipped

Maintainer pings
cc @hedning @jtojnar @dasj19 @maxeaubrey for testing.

Changes look okay:

libgee 0.20.5

Fixes for newer valac
Use Makefile.introspection instead of custom rule


Transportation data sourcing - 2005

Identify data sources for 2005 transportation emissions

Options for consideration. Will continue to update
Activity/vehicle miles
The current year (2021) inventory uses StreetLight Data to estimate emissions for origin/destination trips between/within counties. StreetLight's earliest available year is around 2017 (differs by mode and exact data source), so that will not get us to 2005.

Statewide data, scaled to the region based on population. Could do some sort of time series of population growth over time. This would be very coarse.

Climate Watch
EPA National Emissions Inventory (NEI), interpolating missing data years
National Household Travel Survey NHTS, also NextGen editions

Get MnDOT/WisDOT VMT (interpolate MN 2015 missing data) back to 2005. Obtain data with highest granularity possible, aggregate as needed. This would
Run StreetLight analyses for all available years at county and city levels. Compare directly with DOT VMT values and see if there is a consistent value we can use to scale  the VMT estimates to match StreetLight estimates

Potential modeling opportunities based on: centerline miles by route system or functional class, population, employment, population density,
Major drawback is that we would only have maybe 6 years of StreetLight data to compare to.

Use LODES LEHD, back to 2002, to estimate or validate VMT values using the Origin-Destination framework.

LODES is very focused on employee travel. We would have to adjust for this somehow.

Emissions factors
Historical emissions factors should account for how the regional fleet has changed over time. Vehicles are newer, which means they are more efficient. We should see the grams per mile value decrease over time.

Historical MOVES timeseries? MOVES also projects
EPA GHG Hub values (annual, back to 2011)

Transit data sources
Activity/ vehicle miles

Metro Transit has emissions back to ____

Emissions factors

Metro Transit values based on their fleet. See work in ghg.sp

TODO here
write one-pager on GHG data sources and what you should know about them if you want to


Server's ReadFrom(stream) returning TooManyOpenStreams

I'm not sure if this is a bug, or if I just don't understand the intended behavior, but I'm getting TooManyOpenStreams errors in cases where I did not expect them.
When running a client and server, with a client that opens a very large number of streams, I use OpenStreamSync() on the client to block until a stream is ready. So far, I haven't seen any problems with the client.
On the server side, I AcceptStream() without error. Then when the server tries to ReadFrom(stream), it returns a TooManyOpenStreams error. I would have expected the server to block on AcceptStream() until the number of streams was low enough to accept a new one. Failing that, I would have at least expected the TooManyOpenStreams error to happen on AcceptStream(), instead of coming from ReadFrom(stream).
The below example is sufficient to trigger the problem on my machine (but I suspect it could require increasing msgCount and/or msgSize on a faster machine).
package main

import (
  "fmt"
  "time"
  "bytes"
  "sync"
  "crypto/rand"
  "crypto/rsa"
  "crypto/tls"
  "crypto/x509"
  "encoding/pem"
  "math/big"
  quic "github.com/lucas-clemente/quic-go"
)

const addr = "[::1]:9001"

func main () {
  go run_server()
  run_client()
}

func run_server() {
  listener, err := quic.ListenAddr(addr, generateTLSConfig(), nil)
  if err != nil { panic(err) }
  ses, err := listener.Accept()
  if err != nil { panic(err) }
  for {
    stream, err := ses.AcceptStream()
    if err != nil { panic(err) }
    go func() {
      defer stream.Close()
      bs := bytes.Buffer{}
      _, err := bs.ReadFrom(stream)
      if err != nil { panic(err) } //<-- TooManyOpenStreams
    }()
  }
}

func run_client() {
  msgSize := 1048576
  msgCount := 128
  ses, err := quic.DialAddr(addr, &tls.Config{InsecureSkipVerify: true}, nil)
  if err != nil { panic(err) }
  bs := make([]byte, msgSize)
  wg := sync.WaitGroup{}
  start := time.Now()
  for idx := 0 ; idx < msgCount ; idx++ {
    wg.Add(1)
    go func() {
      defer wg.Done()
      stream, err := ses.OpenStreamSync()
      if err != nil { panic(err) }
      defer stream.Close()
      stream.Write(bs)
    }() // If I don't "go" this then it's fine
  }
  wg.Wait()
  timed := time.Since(start)
  fmt.Println("Client finished", timed, fmt.Sprintf("%f Bits/sec", 8*float64(msgSize*msgCount)/timed.Seconds()))
}

// Setup a bare-bones TLS config for the server
func generateTLSConfig() *tls.Config {
	key, err := rsa.GenerateKey(rand.Reader, 1024)
	if err != nil {
		panic(err)
	}
	template := x509.Certificate{SerialNumber: big.NewInt(1)}
	certDER, err := x509.CreateCertificate(rand.Reader, &template, &template, &key.PublicKey, key)
	if err != nil {
		panic(err)
	}
	keyPEM := pem.EncodeToMemory(&pem.Block{Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(key)})
	certPEM := pem.EncodeToMemory(&pem.Block{Type: "CERTIFICATE", Bytes: certDER})

	tlsCert, err := tls.X509KeyPair(certPEM, keyPEM)
	if err != nil {
		panic(err)
	}
	return &tls.Config{Certificates: []tls.Certificate{tlsCert}}
}

Hello @Arceliar,
unfortunately, this is not a bug in quic-go, but an issue with the QUIC protocol itself. In the current version of QUIC, this is a nasty corner case. The definition of open streams is inherently racy between the two peers (a peer that just closed a stream will regard this stream as closed, whereas the other peer will regard it as open until it received the corresponding FIN bit). There's a "margin of safety" to account for this raciness (https://github.com/lucas-clemente/quic-go/blob/master/internal/protocol/server_parameters.go#L62-L66), which was chosen for the HTTP use case, and might not be sufficient if you have many short-lived streams.
Note that this will change when quic-go moves closer go IETF QUIC (we're tracking Chrome, which is kind of slow adopting the draft changes, so this will likely take a couple of months) with the introduction of the MAX_STREAM_ID frame: https://quicwg.github.io/base-drafts/draft-ietf-quic-transport.html#rfc.section.8.8 (#878 is tracking this)
I wish I could give you a better answer, but the only thing that reliably "works" for the current QUIC version is staying below the max stream limit. You can also try adjusting the margin of safety or increasing the max stream limit.

@Arceliar: I'm closing this issue now, since there's nothing we can do about this at the current moment. Feel free to reopen (or open a new issue) if you have any further questions.


printTiming Error

Basically the Preview pane never loads. It shows the USD logo and the loading dots but never gets to a viewport.
Looked in event viewer, and I'm getting the following error when selecting any type of .usd file.

I've also noticed that the thumbnails only generate a preview after I've double clicked on the file to open.
This is running in Win10 with a fresh install of Python 3.7, Pyside2 and PyOpenGL. Pixar's USD tools work fine on their own.

Do you get the issue only for the preview pane ? what about when you double click a .usd file? does the usdview shows up fine ?

Hi apologies for the delay in replying, been out of office.
Yes only in the preview pane. When I double click the .usd files they open and I can view the models as expected

Anyone able to help with this?
This issue has been reproduced on several machines, all exactly the same error and behaviour.

Apologies for not responding to your last message. Something took my attention right after seeing it.
All I can suspect is some version mismatch with python, in my case I installed the python 3.7 version (UsdShellExtension-v1.09-u21.02-p3.7-setup.exe), in my machine I have python-3.7.9-amd64.exe installed (it won't work with 3.6 for example), and of course that is the verison I compiled USD with (USD that is used for PATH, and PYTHONPATH). Make sure you have no other USD in your PATH or PYTHONPATH variables in your system or user environment that can cause conflict too.

Thanks Mohammed, I found what the issue was. I was using a pre-build of USD from Nvidia but I had version mismatched with the Shell Extension. It requires USD version 21.02, I was using 22.11. After downgrading that, everything works. Thanks anyway!

Thanks Mohammed, I found what the issue was. I was using a pre-build of USD from Nvidia but I had version mismatched with the Shell Extension. It requires USD version 21.02, I was using 22.11. After downgrading that, everything works. Thanks anyway!

I'm confirming your find, I just tested on 22.11 version of USD that I built myself, and it does output the same error

But when I try with v22.08 (that I also had built in the past), it works fine :

Something between v22.08 and 22.11 broke compatibility

Appreciate the test Mohammed, definitely good to know. Might roll out v22.08 instead. Many thanks.


Flaky-test: TestPulsarAuth.testPulsarSqlAuth hangs and makes the test run to get cancelled by a timeout

Search before asking

[X] I searched in the issues and found nothing similar.

Example failure
https://github.com/apache/pulsar/actions/runs/3759470154/jobs/6390308187#step:11:481
Exception stacktrace
"main" #1 prio=5 os_prio=0 cpu=19741.86ms elapsed=29.78s tid=0x00007f1fa8028e40 nid=0xb9bd waiting on condition  [0x00007f1fad2b0000]
   java.lang.Thread.State: WAITING (parking)
	at<EMAIL_ADDRESS>Method)
	- parking to wait for  <0x0000100027c0f240> (a java.util.concurrent.CompletableFuture$Signaller)
	at java.util.concurrent.locks.LockSupport.park(java.base@17.0.5/LockSupport.java:211)
	at java.util.concurrent.CompletableFuture$Signaller.block(java.base@17.0.5/CompletableFuture.java:1864)
	at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@17.0.5/ForkJoinPool.java:3463)
	at java.util.concurrent.ForkJoinPool.managedBlock(java.base@17.0.5/ForkJoinPool.java:3434)
	at java.util.concurrent.CompletableFuture.waitingGet(java.base@17.0.5/CompletableFuture.java:1898)
	at java.util.concurrent.CompletableFuture.get(java.base@17.0.5/CompletableFuture.java:2072)
	at org.apache.pulsar.client.impl.PulsarClientImpl.close(PulsarClientImpl.java:715)
	at org.apache.pulsar.sql.presto.PulsarAuth.checkTopicAuth(PulsarAuth.java:102)
	at org.apache.pulsar.sql.presto.TestPulsarAuth.testPulsarSqlAuth(TestPulsarAuth.java:187)

Are you willing to submit a PR?

[ ] I'm willing to submit a PR!

might be related to #13964

https://github.com/apache/pulsar/issues/13964 has been fixed. Closing as no more report for this case. Feel free to open a new ticket or reopen this one if it comes back.


[feature request] Support for internal windows and glut windows.

This should be supported now (version 0.2.6).
GlutWindow requires the enable-glwindow feature.

thanks


CLOUD-515 test compliance

Since volume allocation on alternative providers works a bit slower than
on GKE, delay extension is needed

Test name
Status

storage
failed

scaling
passed

init-deploy
failed

recreate
passed

big-data
passed

self-healing
failed

limits
failed

monitoring
failed

scaling-proxysql
passed

monitoring-2-0
failed

self-healing-advanced
passed

affinity
failed

one-pod
passed

upgrade
passed

restore-to-encrypted-cluster
passed

operator-self-healing
passed

auto-tuning
failed

upgrade-consistency
failed

security-context
failed

proxysql-sidecar-res-limits
failed

demand-backup
passed

scheduled-backup
passed

demand-backup-encrypted-with-tls
passed

Test name
Status

storage
failed

recreate
passed

big-data
failed

init-deploy
failed

scaling
failed

self-healing
failed

limits
failed

monitoring
failed

monitoring-2-0
failed

restore-to-encrypted-cluster
passed

scaling-proxysql
passed

affinity
failed

one-pod
passed

self-healing-advanced
passed

upgrade
passed

auto-tuning
failed

operator-self-healing
passed

demand-backup
passed

proxysql-sidecar-res-limits
failed

upgrade-consistency
failed

security-context
failed

scheduled-backup
failed

demand-backup-encrypted-with-tls
passed

Test name
Status

storage
failed

init-deploy
failed

scaling
passed

big-data
failed

self-healing
failed

limits
failed

monitoring
failed

scaling-proxysql
failed

monitoring-2-0
failed

self-healing-advanced
passed

operator-self-healing
passed

affinity
failed

one-pod
passed

auto-tuning
failed

proxysql-sidecar-res-limits
failed

upgrade
passed

upgrade-consistency
failed


Support for all storages;add config file - CN1WindowsPort.xml; fix font size on HD screen

1.Add support for all storages:
Local:,Cache:,Roaming:,Temp:,SDCard:,Removable:, CameraRoll:
as Java roots
2. Default storage is defined in CN1WindowsPort.xml
3. Fix problem with font size on HD screens

Nice ! I'll merge it when coming back to office next week, thanks !


.github/workflows: remove ip binary workaround in datapath complexity tests

Follow-up for #24117 now that the complexity-test image correctly replaces the ip binary with the one from the Cilium image, see https://github.com/cilium/little-vm-helper-images/pull/50

/ci-verifier


Update locations of constants in Google Analytics documentation

Looks like the google_analytics module was moved into templatetags some time ago and the documentation wasn't updated with it.

@bittner: Well, if the correct location is analytical.templatetags.google_analytics then the documentation should be updated, right?


Plugin default settings

Is there any reason for setting logLevel and JsEngineKeys.parallelism settings in plugin defaults?
Would be better to scope them to typescript task if possible.

The only reason is my tenuous grasp of sbt.  Please feel free to send a quick pull request and I'll be happy to merge it.


Command error

Hello, I had to reinstall the bot and now “/profile” and “/user settings” return  X command error.

This is rather hard to tell what's wrong, but it looks like a server error and not the bot's fault. I don't see this issue on my end so I can't troubleshoot it.

Here are the logs if it helps
`WARNING:discord.client:PyNaCl is not installed, voice will NOT be supported
INFO:discord.client:logging in using static token
INFO:discord.gateway:Shard ID None has sent the IDENTIFY payload.
INFO:discord.gateway:Shard ID None has connected to Gateway: ["gateway-prd-us-east1-d-xf2j",{"micros":164371,"calls":["id_created",{"micros":1732,"calls":[]},"session_lookup_time",{"micros":319,"calls":[]},"session_lookup_finished",{"micros":29,"calls":[]},"discord-sessions-prd-1-36",{"micros":162005,"calls":["start_session",{"micros":136725,"calls":["discord-api-rpc-7bf695cffb-p97qx",{"micros":123126,"calls":["get_user",{"micros":44466},"get_guilds",{"micros":25521},"send_scheduled_deletion_message",{"micros":8},"guild_join_requests",{"micros":240},"authorized_ip_coro",{"micros":10}]}]},"starting_guild_connect",{"micros":55,"calls":[]},"presence_started",{"micros":254,"calls":[]},"guilds_started",{"micros":111,"calls":[]},"guilds_connect",{"micros":2,"calls":[]},"presence_connect",{"micros":24808,"calls":[]},"connect_finished",{"micros":24813,"calls":[]},"build_ready",{"micros":41,"calls":[]},"clean_ready",{"micros":1,"calls":[]},"optimize_ready",{"micros":0,"calls":[]},"split_ready",{"micros":1,"calls":[]}]}]}] (Session ID: cf4a70c7547ad59285788865a28f3010).
Ignoring exception in on_connect
Traceback (most recent call last):
File "/home/kekko/.local/lib/python3.10/site-packages/discord/client.py", line 400, in _run_event
await coro(*args, **kwargs)
File "/home/kekko/.local/lib/python3.10/site-packages/discord/bot.py", line 1178, in on_connect
await self.sync_commands()
File "/home/kekko/.local/lib/python3.10/site-packages/discord/bot.py", line 754, in sync_commands
app_cmds = await self.register_commands(
File "/home/kekko/.local/lib/python3.10/site-packages/discord/bot.py", line 531, in register_commands
prefetched_commands = await self._bot.http.get_guild_commands(
File "/home/kekko/.local/lib/python3.10/site-packages/discord/http.py", line 367, in request
raise Forbidden(response, data)
discord.errors.Forbidden: 403 Forbidden (error code: 50001): Missing Access
INFO:root:Birthday reminder task loop is scheduled to start in 2964.0 seconds
INFO:root:Next daily checkin scan is in 13763.708947000094 seconds
INFO:root:Begin periodic real-time notes check
INFO:root:Getting real-time notes for 703679024
INFO:root:[ResinMonitor] Notifying 703679024 in 60.000 seconds.
INFO:root:Getting real-time notes for 703679024
INFO:root:Finished periodic real-time notes check
ERROR:root:Application command error
Traceback (most recent call last):
File "/home/kekko/.local/lib/python3.10/site-packages/discord/commands/core.py", line 131, in wrapped
ret = await coro(arg)
File "/home/kekko/.local/lib/python3.10/site-packages/discord/commands/core.py", line 1009, in _invoke
await self.callback(self.cog, ctx, **kwargs)
File "/home/kekko/genshinhelper/src/handlers/user_manager.py", line 220, in settings
user_info = await gs.request_hoyolab(
File "/home/kekko/.local/lib/python3.10/site-packages/genshin/client/components/base.py", line 480, in request_hoyolab
data = await self.request(url, method=method, params=params, data=data, headers=headers, **kwargs)
File "/home/kekko/.local/lib/python3.10/site-packages/genshin/client/components/base.py", line 377, in request
response = await self.cookie_manager.request(
File "/home/kekko/.local/lib/python3.10/site-packages/genshin/client/manager/managers.py", line 283, in request
return await self._request(method, url, cookies=self.cookies, **kwargs)
File "/home/kekko/.local/lib/python3.10/site-packages/genshin/client/ratelimit.py", line 25, in inner
x = await func(*args, **kwargs)
File "/home/kekko/.local/lib/python3.10/site-packages/genshin/client/manager/managers.py", line 158, in _request
raise errors.GenshinException(msg="Recieved a response with an invalid content type:\n" + content)
genshin.errors.GenshinException: Recieved a response with an invalid content type:

503 Service Temporarily Unavailable

503 Service Temporarily Unavailable
nginx

The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/kekko/.local/lib/python3.10/site-packages/discord/bot.py", line 1130, in invoke_application_command
await ctx.command.invoke(ctx)
File "/home/kekko/.local/lib/python3.10/site-packages/discord/commands/core.py", line 376, in invoke
await injected(ctx)
File "/home/kekko/.local/lib/python3.10/site-packages/discord/commands/core.py", line 131, in wrapped
ret = await coro(arg)
File "/home/kekko/.local/lib/python3.10/site-packages/discord/commands/core.py", line 1370, in _invoke
await command.invoke(ctx)
File "/home/kekko/.local/lib/python3.10/site-packages/discord/commands/core.py", line 376, in invoke
await injected(ctx)
File "/home/kekko/.local/lib/python3.10/site-packages/discord/commands/core.py", line 139, in wrapped
raise ApplicationCommandInvokeError(exc) from exc
discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: GenshinException: Recieved a response with an invalid content type:

503 Service Temporarily Unavailable

503 Service Temporarily Unavailable
nginx

`

even the discord lib is getting error.
discord.errors.Forbidden: 403 Forbidden (error code: 50001): Missing Access
Where are you running this bot? I would suggest test on your own computer first

I'm running this bot on my computer, but for testing purposes I just tried to run in on Ubuntu using WSL 2 with the same result. I also tried to invite the bot in a test sever with scopes "bot" and "applications.commands" and Bot permissions "Administator" but nothing changed.
.env settings:
# ===== REQUIRED =====

# This is your Discord bot token
BOT_TOKEN=TOKEN

# ===== OPTIONAL =====

# List of games to do check in daily. See enums at https://github.com/thesadru/genshin.py/blob/20067d558c6dab7ee9eb7c7e65e48b63f71f6fcf/genshin/types.py#L24
DAILY_CHECKIN_GAMES=GENSHIN,ZZZ

# Primogem code URLs (point to line-by-line text file or json, comma-delimited)
CODE_URL=https://www.pockettactics.com/genshin-impact/codes

# This is used to enable slash commands depending on server levels.
# Level-5 servers will have access to all slash commands.
LEVEL_1_GUILDS=
LEVEL_2_GUILDS=
LEVEL_3_GUILDS=
LEVEL_4_GUILDS=
LEVEL_5_GUILDS=

# Specific channels for the bots. Check code to see what they're for.
IMAGE_HOSTING_CHANNEL_ID=
ROUTE_CHANNEL_IDS=
NEWS_CHANNEL_IDS=
CODE_CHANNEL_IDS=

Logs with no commands:
WARNING:discord.client:PyNaCl is not installed, voice will NOT be supported
INFO:discord.client:logging in using static token
INFO:discord.gateway:Shard ID None has sent the IDENTIFY payload.
INFO:discord.gateway:Shard ID None has connected to Gateway: ["gateway-prd-us-east1-d-hgbb",{"micros":81770,"calls":["id_created",{"micros":640,"calls":[]},"session_lookup_time",{"micros":281,"calls":[]},"session_lookup_finished",{"micros":27,"calls":[]},"discord-sessions-prd-1-81",{"micros":80466,"calls":["start_session",{"micros":45112,"calls":["discord-api-rpc-84cff5674-rv59b",{"micros":41187,"calls":["get_user",{"micros":7054},"get_guilds",{"micros":3823},"send_scheduled_deletion_message",{"micros":7},"guild_join_requests",{"micros":1},"authorized_ip_coro",{"micros":9}]}]},"starting_guild_connect",{"micros":89,"calls":[]},"presence_started",{"micros":293,"calls":[]},"guilds_started",{"micros":83,"calls":[]},"guilds_connect",{"micros":1,"calls":[]},"presence_connect",{"micros":34830,"calls":[]},"connect_finished",{"micros":34836,"calls":[]},"build_ready",{"micros":48,"calls":[]},"clean_ready",{"micros":0,"calls":[]},"optimize_ready",{"micros":1,"calls":[]},"split_ready",{"micros":0,"calls":[]}]}]}] (Session ID: 7c443555b1eb2d78b3899f4396c00f6a).
INFO:root:Birthday reminder task loop is scheduled to start in 229.0 seconds
INFO:root:Next daily checkin scan is in 7428.5193660000805 seconds
INFO:root:Begin periodic real-time notes check
INFO:root:Getting real-time notes for MY_ID
INFO:root:[ResinMonitor] Notifying MY_ID in 60.000 seconds.

Logs with /user settings command:
ERROR:root:Application command error
Traceback (most recent call last):
  File "/home/kekok/.local/lib/python3.10/site-packages/discord/commands/core.py", line 131, in wrapped
    ret = await coro(arg)
  File "/home/kekok/.local/lib/python3.10/site-packages/discord/commands/core.py", line 1009, in _invoke
    await self.callback(self.cog, ctx, **kwargs)
  File "/home/kekok/genshinhelper/src/handlers/user_manager.py", line 220, in settings
    user_info = await gs.request_hoyolab(
  File "/home/kekok/.local/lib/python3.10/site-packages/genshin/client/components/base.py", line 480, in request_hoyolab
    data = await self.request(url, method=method, params=params, data=data, headers=headers, **kwargs)
  File "/home/kekok/.local/lib/python3.10/site-packages/genshin/client/components/base.py", line 377, in request
    response = await self.cookie_manager.request(
  File "/home/kekok/.local/lib/python3.10/site-packages/genshin/client/manager/managers.py", line 283, in request
    return await self._request(method, url, cookies=self.cookies, **kwargs)
  File "/home/kekok/.local/lib/python3.10/site-packages/genshin/client/ratelimit.py", line 25, in inner
    x = await func(*args, **kwargs)
  File "/home/kekok/.local/lib/python3.10/site-packages/genshin/client/manager/managers.py", line 158, in _request
    raise errors.GenshinException(msg="Recieved a response with an invalid content type:\n" + content)
genshin.errors.GenshinException: Recieved a response with an invalid content type:

<title>503 Service Temporarily Unavailable</title>

503 Service Temporarily Unavailable

nginx

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/kekok/.local/lib/python3.10/site-packages/discord/bot.py", line 1130, in invoke_application_command
    await ctx.command.invoke(ctx)
  File "/home/kekok/.local/lib/python3.10/site-packages/discord/commands/core.py", line 376, in invoke
    await injected(ctx)
  File "/home/kekok/.local/lib/python3.10/site-packages/discord/commands/core.py", line 131, in wrapped
    ret = await coro(arg)
  File "/home/kekok/.local/lib/python3.10/site-packages/discord/commands/core.py", line 1370, in _invoke
    await command.invoke(ctx)
  File "/home/kekok/.local/lib/python3.10/site-packages/discord/commands/core.py", line 376, in invoke
    await injected(ctx)
  File "/home/kekok/.local/lib/python3.10/site-packages/discord/commands/core.py", line 139, in wrapped
    raise ApplicationCommandInvokeError(exc) from exc
discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: GenshinException: Recieved a response with an invalid content type:

<title>503 Service Temporarily Unavailable</title>

503 Service Temporarily Unavailable

nginx

Ohhh, it's just the /user settings command. Now that I could reproduce it I have fixed it with the newest commit. As for /profile it has been working for me so I don't know still.

I could harbor a guess though. It says that the the icon.url in this line doesn't exist:
        embed.set_author(name=data.player.nickname, icon_url=data.player.avatar.icon.url)

What UID are you trying to call it on? I'm only testing NA UIDs so it could be not working in other regions.

Closing this issue if there's no response soon

I could harbor a guess though. It says that the the icon.url in this line doesn't exist:
        embed.set_author(name=data.player.nickname, icon_url=data.player.avatar.icon.url)

What UID are you trying to call it on? I'm only testing NA UIDs so it could be not working in other regions.

With my UID it doesn't work (703679024), maybe it's something I need to enable on HoyoLab because it works with other EU UIDs.
The /user settings also work, but sometimes returns that error.

The dependency lib has been put in archive mode. It doesn't receive any updates so that's why new character costumes are failing.  This is why I may just remove this feature as I don't have time to maintain one myself either.
https://github.com/mrwan200/EnkaNetwork.py

For now I have removed the offending object to make it work for your UID. Though future changes may break it again.

Thank you!


Consider moving back to immutability for everything

The r1 package used immutability heavily. The r2 package tended towards mutability due to unfounded GC fears. Most of the types are not hand written and therefore the generated mutable types can simply be switched off (guaranteeing monomorphic calls in the process).

Additionally, value types are going to use immutability heavily. Best that the renderer define APIs now that use immutability heavily in order to make the transition to value types easier.

I think the approach should be to keep the interface types, move everything to Immutables and then only generate immutable types. If people want mutability, they have to define their own mutable types. This way, mutability is discouraged but not prevented.

Done. Went with the stronger form; everything is immutable.


Javascript Lint Show Error When Using Async and/or Await

I am using await and async in my Javascript code, and I am getting this "error" (its not, but its being reported as such.
https://drive.google.com/file/d/1PUCal959jFAMA3UgQlTcx7TKhfhHrBw2/view?usp=sharing

And my Javascript is such:
javacriptCodeEditor = window.CodeMirror.fromTextArea(document.getElementById('widget-javascript-container'), {
                        lineNumbers: true,
                        extraKeys: {
                            "Ctrl-Space": "autocomplete"
                        },
                        mode: {
                            name: "javascript",
                            globalVars: true
                        },
                        matchBrackets: true,
                        gutters: ["CodeMirror-lint-markers"],
                        autoCloseBrackets: true,
                        lint: {
                            esversion: 6
                        }
                    });

Is this a bug or am I doing something wrong?

Use a newer version of jshint, I guess? I've upgraded the demo in attached patch.


Mixed requests

When requesting textual transcriptions or alignments after a full transcription, the response is parsed as JSON incorrectly.

Any chance this could be merged and released @pkarman ?


Feature/GitHub auth

@apinf/developers, please review this pull request

This looks good. Lets open another task to get additional user details from the Github authentication object. I have opened a support request on the Meteor Github authentication package.


Logout admin side automatically logged out the front user and vice versa

I have two authentications system. One is this multi-auth for admin and other is laravel default auth for the front user. If logout from the front user, admin automatically get log out and vice versa.
For admin logout I am using route(admin.logout) and for front user, I am using route(logout)

use auth('admin')->logout() function to logout only admin, it is already fixed in newer versions


coerceTypes: "array" when combined with oneOf may produce invalid result

What version of Ajv are you using? Does the issue happen if you use the latest version?
v6.12.5
Ajv options object

{ coerceTypes: "array" }

JSON Schema

{
  "type": "object",
  "properties": {
    "foo": {
      "oneOf": [
        { "const": "*" },
        { "type": "array", "items": { "type": "string", "pattern": "^[A_Z]+$" } }
      ]
    }
  }
}

Sample data

{ "foo": "*" }

Validation result, data AFTER validation, error messages
{ foo: [ '*' ]  }

What results did you expect?
I didn't expect coercion to be made on value that doesn't validate against items schema, and buggy side effect of that is that input value was changed to one which no longer matches the schema.
I believe by design validation should not produce results which no longer validates against same schema.
Additionally I observed that coercion to array is forced even if singular value is accepted
e.g. string value will be put into array with schema as oneOf: [{ type: "string" }, { type: "array", items: { type: "string" } }], and interesting quirk is that it'll impose a validation error, as internals will assume that both variants were matched.

It's a limitation that's been raised, not a bug really. It difficult to define predictable behaviour for validation that mutates data - it would always depend on the order of validation... oneOf, anyOf, allOf are not discriminated - there is a related issue to make them discriminated with "discriminator" keyword.  In your case you could use if/then/else instead to control which branches are validated.

Additionally I observed that coercion to array is forced even if singular value is accepted

It was accepted in another branch. oneOf has to ascertain that the data is invalid against only one branch, so it has to validate it against another branch that requires the array - therefore it coerces the data. In most cases it's better to use anyOf that would stop validating as soon as it finds the branch against which the data is valid (it's OR rather than XOR),

@epoberezkin thanks for clarifications, indeed if for performance reasons there's no go back logic in validation algorithm, then it's not possible to have that well solved.
Feel free to close if you do not see envision any reliable solution for that.


Automator: update istio/api@master dependency in istio/istio@master

Generated by Automator - 2020-10-08T22:56:58+00:00

@istio-testing: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
c059ba7c25549732d986fa462a044c4b94de4aa8
link
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
7822dba33255cf8b6f3902644736162ed793893e
link
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
726fd73da5affc39ae88f81c7b9834205ab96109
link
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
726fd73da5affc39ae88f81c7b9834205ab96109
link
/test unit-tests_istio

integ-multicluster-k8s-tests_istio
68f6662f0bba1b55a59ad356fe1f7a0808288698
link
/test integ-multicluster-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-multicluster-k8s-tests_istio
68f6662f0bba1b55a59ad356fe1f7a0808288698
link
/test integ-multicluster-k8s-tests_istio

unit-tests_istio
68f6662f0bba1b55a59ad356fe1f7a0808288698
link
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-multicluster-k8s-tests_istio
68f6662f0bba1b55a59ad356fe1f7a0808288698
link
/test integ-multicluster-k8s-tests_istio

unit-tests_istio
68f6662f0bba1b55a59ad356fe1f7a0808288698
link
/test unit-tests_istio

integ-pilot-k8s-tests_istio
68f6662f0bba1b55a59ad356fe1f7a0808288698
link
/test integ-pilot-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-multicluster-k8s-tests_istio
68f6662f0bba1b55a59ad356fe1f7a0808288698
link
/test integ-multicluster-k8s-tests_istio

unit-tests_istio
68f6662f0bba1b55a59ad356fe1f7a0808288698
link
/test unit-tests_istio

integ-pilot-k8s-tests_istio
68f6662f0bba1b55a59ad356fe1f7a0808288698
link
/test integ-pilot-k8s-tests_istio

integ-security-k8s-tests_istio
68f6662f0bba1b55a59ad356fe1f7a0808288698
link
/test integ-security-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-multicluster-k8s-tests_istio
68f6662f0bba1b55a59ad356fe1f7a0808288698
link
/test integ-multicluster-k8s-tests_istio

integ-pilot-k8s-tests_istio
68f6662f0bba1b55a59ad356fe1f7a0808288698
link
/test integ-pilot-k8s-tests_istio

integ-security-k8s-tests_istio
68f6662f0bba1b55a59ad356fe1f7a0808288698
link
/test integ-security-k8s-tests_istio

unit-tests_istio
df18f54670ca40125f46814be28d4b03ee4b91f7
link
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
751134809888ae13cd0cfeb9ae9e1167f3ef0ada
link
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
c767301519f1c7ef378d9afe89bda223c3d3ab31
link
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
b027f7a7580cd2be328ab71b0384024ea5532379
link
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-ipv6-k8s-tests_istio
fd09a83a7aca345481271e167807be43be65672e
link
/test integ-ipv6-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
12ad7f16d7fd3d94ebc28c3688816a7469b2b8ab
link
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


Basic explanation required about Providers

1/ Even is the question may be see as a bit theoritical, I would like to know exactly the purpose of Providers in a general manner and for ToothPick ?
2/ When we see this code in Smoothie:
bind(FragmentManager.class).toProviderInstance(new SupportFragmentManagerProvider(activity));
What is the difference with:
bind(FragmentManager.class).toInstance(((FragmentActivity) activity).getSupportFragmentManager());
So why there is a need for the provider
3/ And finally, if provider is required for any reason (I'm sure of that, but I wait reason) as Toothpick intended to reduce the boilerplate, this is a real pain to write all those Providers
Why not giving the possiblity to generate simple providers like that:
bind(FragmentManager.class).toInstanceProvider(((FragmentActivity)activity).getSupportFragmentManager());
would generate the provider like this:
public class SupportFragmentManagerProvider implements Provider<FragmentManager> {
  Activity activity;

  public SupportFragmentManagerProvider(Activity activity) {
    this.activity = activity;
  }

  @Override
  public FragmentManager get() {
    return ((FragmentActivity) activity).getSupportFragmentManager();
  }
}

Thanks for helping me to better understand DI and TP.

@afaucogney Sorry for the delay in answering. Here are some answers.

Providers in DI are entities that know how to produce instances. They are used to "provide" the instances when you request an injection:

   class ElectricCar {
     @Inject Engine engine;
     @Inject Body body;
     ....
   }

Here, a TP user requests 2 injections (an Engine and a Body). DI has 2 different problems to solve:

creating the instances of the Engine and Body classes, and
assigning them to the fields of an instance of ElectricCar.

The second problem is solved in TP by generated code (Member Injectors), while the first problem is solved by providers.
A provider is the entity that has the knowledge to create objects of a given type. In TP, internally, all things (i.e. scopes) are represented by hashmaps that link a given injected type (e.g. Engine or Body) to an internal provider: an entity that knows how to produce instances (resp. of Engine and Body). These internal providers use generated factories by default.
But they can be replaced by a custom provider in cases where the creation of instances cannot be automated, for instance if you need to pass some special parameters to the classes you create, or return special subclasses. To tell TP to use these providers, you bind them to injected classes inside a TP module:
scope.install( new Module() {{
   bind(Body.class).toProviderInstance( new Provider<Body>() {
     public Body get() {
        return new PlasticBody("Polypropylene");
     }
  })
}});

Another usage of Providers defined by JSR 330 is that you can directly inject a Provider. This is less current and often considered a design flaw:
   class ElectricCar {
     @Inject ElectricCar(Provider<Seat> seatProvider) {
       Seat driver = seatProvider.get();
       Seat passenger = seatProvider.get();
       ...
     }
   }

There is no difference between:

bind(FragmentManager.class).toProviderInstance(new SupportFragmentManagerProvider(activity));

and
bind(FragmentManager.class).toInstance(((FragmentActivity) activity).getSupportFragmentManager());

If you go again through my first answer, you will understand that internally, anyway, all bindings are gonna be converted to an internal provider. In the first case, the internal provider uses an instance of SupportFragmentManagerProvider to create the FragmentManager, and in the second case the internal provider will directly know about an instance of FragmentManager to recycle.
But both of these bindings will indifferently return the same instance of FragmentManager.

There is no need for a provider per say, both forms are equal. We have created providers to get more isolation of the code related to creating special entities. It's cleaner than having all code in the module. But again, it ends up to producing the same instances.

TP is a very free system and up to you to use providers or not. Our best practices tell us that providers are useful to isolate a non trivial object creation logic.


filterValue doesn't work in IE

Describe the bug
filterValue internally is depended on startwith implementation which is not available in IE
To Reproduce
Steps to reproduce the behavior:
const data = [
{
firstName: "Vernell",
lastName: "Feher",
visits: 1,
employee: "true"
},
{
firstName: "Meridith",
lastName: "Westerlund",
visits: 2,
employee: "true"
},
{
firstName: "Vada",
lastName: "Rabideau",
visits: 1,
employee: "true"
}
];
const columns = [
{
header: "First Name",
accessor: "firstName",
filterValue: "Mer"
},
{
header: "Last Name",
accessor: "lastName"
},
{
header: "Visits",
accessor: "visits"
},
{
header: "Permanent",
accessor: "employee"
}
];
Expected behavior
filter value is dependent of startWith api , which is only available in IE
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith
Codesandbox!
Use a new react-table codesandbox to reproduce the issue.
Screenshots
Table with filterValue property doesn't work
Desktop (please complete the following information):

IE 11

Additional context
Adding polyfill for startsWith will help in achieving it.

Please use a polyfill for non-modern browser support.


Kafka pub/sub not working with DAPR version 1.5

Kafka run out of available brokers
in DAPR version 1.4 , DAPR pub/sub using kafka works perfectly, but with DAPR version 1.5 pub/sub with kafka ends with issue that Kafka run out of available brokers and DAPR shutting down.

Can you provide more details on your scenario? Also, some logs can help.

/cc @pkedy

Also please paste your component YAML here.

Can you provide more details on your scenario? Also, some logs can help.

Error facing
time="2021-12-01T11:30:34.2787635+05:30" level=fatal msg="process component pubsub error: kafka: client has run out of available brokers to talk to (Is your cluster reachable?)" app_id=notifications instance=softobiz-jagjeet scope=dapr.runtime type=log ver=1.5.0
Could not update sidecar metadata for cliPID: PUT http://<IP_ADDRESS>:3600/v1.0/metadata/cliPID giving up after 5 attempts
DAPR version 1.5
dapr init --runtime-version=1.5.0
But If I have
CLI version: 1.5.0
Runtime version: 1.4.0
then kafka pubsub starts working.
Pubsub file
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: pubsub
namespace: dev
spec:
type: pubsub.kafka
version: v1
metadata:

name: brokers
value: "pkc-XXXXXXXXXXXX:9092"
name: clientID
value: "microservices"
name: authRequired
value: "true"
name: saslUsername
value: "D5XXXXXXXXXXN"
name: saslPassword
value: "fjwtLXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXrRSN"
name: maxMessageBytes
value: 2048

Hello @yaron2  @artursouza  , any update on above please. I am in middle of this implementation.
Thanks.

@yaron2  @artursouza  , I was trying on Discord , if we can connect there. I have sent you request from username jagjeet.
If you are more active on that, we can discuss there too. Thanks.

This happens when running locally with the Dapr CLI, am I correct?

process component pubsub error: kafka: client has run out of available brokers to talk to (Is your cluster reachable?)

This error message from the underlying library (Sarama) occurs if cannot connect to brokers in general. Its a little misleading but I would make sure the credentials are correct.
Outside of that, id does seem like there were some changes to the component's settings, but I could see where there could be an issue. I'll take a second look though.

This happens when running locally with the Dapr CLI, am I correct?

Yes, when running on locally, this issue starts coming.

Is there any issue with library (Sarama) that creates issue with DAPR runtime version 1.5 but works fine for DAPR runtime version 1.4 ?

I have tried to reproduce this using 1.5.1 and was not successful. My settings are identical to your except for I am not using SASL for auth (thus authRequired is "false").
I also tried setting authRequired to "true" and setting saslUsername and saslPassword to non-empty strings. I can confirm that bad authentication/credentials will manifest as this error.
WARN[0000] error initializing pub sub pubsub.kafka/v1: kafka: client has run out of available brokers to talk to (Is your cluster reachable?)

Can you confirm that your SASL credentials are correct? What is strange to me is that between 1.4 and 1.5, the SASL code did not change.

yes , @pkedy   , SASL credentials were correct and how I can confirm them is, when I run this command in powershell,
dapr init --runtime-version=1.4.0
then after changing runtime version of DAPR, pub/sub starts working for me with given SASL username and password with authRequired True
on the other side when I change runtime version for DAPR > dapr init --runtime-version=1.5.0
then with the same credentials, DAPR pub/sub stops working for me.  And kakfa run out of available brokers issue starts coming up.
Can you please try that one. Thanks.

I face the very same issue trying the pubsub example with kafka module:
dapr run --app-id node-subscriber --app-port 3000 node app.js
[...]
FATA[0005] process component pubsub error: kafka: client has run out of available brokers to talk to (Is your cluster reachable?)  app_id=node-subscriber instance=joseph-ThinkPad-T480 scope=dapr.runtime type=log ver=1.5.1

Here is the config of my kafka pubsub component:
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
  name: pubsub
  namespace: default
spec:
  type: pubsub.kafka
  version: v1
  metadata:
    - name: brokers # Required. Kafka broker connection setting
      value: "http://localhost:9092"
    - name: consumerGroup # Optional. Used for input bindings.
      value: "group1"
    - name: clientID # Optional. Used as client tracing ID by Kafka brokers.
      value: "my-dapr-app-id"
    - name: authRequired # Required.
      value: "false"
    - name: maxMessageBytes # Optional.
      value: 1024
    - name: consumeRetryInterval # Optional.
      value: 200ms

yes , @pkedy , SASL credentials were correct and how I can confirm them is, when I run this command in powershell, dapr init --runtime-version=1.4.0 then after changing runtime version of DAPR, pub/sub starts working for me with given SASL username and password with authRequired True
on the other side when I change runtime version for DAPR > dapr init --runtime-version=1.5.0 then with the same credentials, DAPR pub/sub stops working for me. And kakfa run out of available brokers issue starts coming up.
Can you please try that one. Thanks.

Can you try this outside of Powershell and see if that makes a difference? Also, I see from your brokers section that you're trying to reach a broker on a remote machine? can you try running Kafka locally and see if that makes a difference?

I face the very same issue trying the pubsub quickstart example with kafka module, in 1.5.1 and 1.4.0:
dapr run --app-id node-subscriber --app-port 3000 node app.js
[...]
FATA[0005] process component pubsub error: kafka: client has run out of available brokers to talk to (Is your cluster reachable?)  app_id=node-subscriber instance=joseph-ThinkPad-T480 scope=dapr.runtime type=log ver=1.5.1

Here is the config of my kafka pubsub component:
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
  name: pubsub
  namespace: default
spec:
  type: pubsub.kafka
  version: v1
  metadata:
    - name: brokers # Required. Kafka broker connection setting
      value: "http://localhost:9092"
    - name: consumerGroup # Optional. Used for input bindings.
      value: "group1"
    - name: clientID # Optional. Used as client tracing ID by Kafka brokers.
      value: "my-dapr-app-id"
    - name: authRequired # Required.
      value: "false"
    - name: maxMessageBytes # Optional.
      value: 1024
    - name: consumeRetryInterval # Optional.
      value: 200ms

the problem also occurs in 1.4.0:
WARN[0000] error initializing pub sub pubsub.kafka/v1: kafka: client has run out of available brokers to talk to (Is your cluster reachable?)  app_id=node-subscriber instance=joseph-ThinkPad-T480 scope=dapr.runtime type=log ver=1.4.0

Remove the http:// from brokers value.

I didn't see your answer @yaron2 .
(copy-pasting my reply from discord, it may help someone in a similar situation, just googling)

OK, i think i figured this out, it seems to be a problem of ADVERTISED_LISTENERS , i was using docker-compose to setup the local kafka cluster, and i think by default the advertised listener is kafka (ok for a dockerized app running in the same docker network), but since the app was running on localhost, it couldn't contact a node at the address kafka

Not sure if this is still an issue, but my guess is this is due to a breaking change in 1.5.1 where TLS is no longer enabled automatically when SASL authn is used


Custom Syntax won't work

Version 0.17.0
I was experimenting a bit with defining a custom syntax and I can't manage to create a working custom syntax.
implementation_func
fn implementation_func(
    engine: &Engine,
    scope: &mut Scope,
    mods: &mut Imports,
    state: &mut EvalState,
    lib: &Module,
    this_ptr: &mut Option<&mut Dynamic>,
    inputs: &[Expression],
    level: usize
) -> Result<Dynamic, Box<EvalAltResult>> {
    let expression = inputs.get(0).unwrap();
    let value = engine.eval_expression_tree(scope, mods, state, lib, this_ptr, expression, level)?;

    println!("{:?}", value);

    Ok(().into())
}

main
fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut engine = Engine::new();

    engine.register_custom_syntax(
        &["test", "$expr$"],
        0,
        implementation_func
    )?;

    engine
        .eval::<Dynamic>(
            r#"
            test 0;
            "#,
        )
        .unwrap();

    Ok(())
}

error
memory allocation of<PHONE_NUMBER>28 bytes failederror: process didn't exit successfully: `target\debug\wwm.exe` (exit code: 0xc0000409, STATUS_STACK_BUFFER_OVERRUN)

Running the code without the test 0; line results in the following error
error
error: process didn't exit successfully: `target\debug\wwm.exe` (exit code: 0xc0000374, STATUS_HEAP_CORRUPTION)

If I remove the register_custom_syntax call the program exists successfully.
The syntax I provided as an example is very simple and the resulting DSL should more look like the following code snippet.
enable work_mode;
enable launch_on_startup;

set work_mode true;
set min_height 200;

bind "Alt+Enter" to launch("wt.exe");

for i in range(1,10) {
  let key = "Alt+" + i;
  bind key to change_workspace(i);
}

mode resize {
  bind "H" to resize("Left", 2);
  bind "Shift+H" to resize("Left", -2);
};

I am try to see whether I can use rhai as the configuration language for WWM

I also find it quite confusing that in the test a different signature is being used as in the documentation. Were there any significant changes in the last week?

Sorry didn't see this comment. Is there any ETA on when this gets published and would it be possible to use the feature without internals in my case?

Like 0.18.0, where the main feature is true closures.
In the meantime, you can pull directly from this repo.
Does your custom syntax work now?  Or does it still crash?

The syntax I provided as an example is very simple and the resulting DSL should more look like the following code snippet.

Rhai should handle your design just fine.  However, there doesn't seem to be anything stopping you from implementing all of these as function calls, so your users do not need to learn yet another language...

Another suggestion: Sometimes judicial usage of symbols instead of introducing more text keywords (leaving keywords only at the start) make things clearer:
enable work_mode;
enable launch_on_startup;

set work_mode = true;
set min_height = 200;

bind "Alt+Enter" -> launch("wt.exe");

for i in range(1,10) {
  let key = "Alt+" + i;
  bind key -> change_workspace(i);
}

mode resize {
  bind "H" -> resize("Left", 2);
  bind "Shift+H" -> resize("Left", -2);
};

Using my code on the latest release 0.17.0 doesn't work, but using your version on master works.
Thank you!
If you don't have any question regarding version 0.17.0 I will close the issue.

You can just return the enum if you want, as long as you #[derive(Clone)] on it. Rhai requires custom types to be clonable.
Usually, using custom types is an overkill.  Just return an integer will be fastest.
If you need to return different data depending on different configurations, you can consider a map.
As for ImmutableString, if you can use it directly, it'll be faster as it is a shared immutable string.  If not, returning String will simply create a fresh cloned copy of the string and return it to you.
Depending on your intended call frequency and need for speed.

You are really helpful!
Should i post my questions somewhere else or can I just ask in this issue (I will close it for now)?
Is it possible to import modules without the as ... part?
I have the following structure

Each script is just a list of statements that are not really exporting anything so having to think of a name just to import them is really annoying.
Right now the main file looks like this
import "keybindings" as kb;
import "rules" as r;
import "modes/resize" as mr;

Would it be possible to write it like this?
import "keybindings" as _;
import "rules" as _;
import "modes/resize" as _;

Or even this?
import "keybindings";
import "rules";
import "modes/resize";

I could define my own syntax, but this feels like something that I shouldn't do.

Is it possible to import modules without the as ... part?

The problem is... the module path may not be a valid variable name.  What are we going to do when it is not?

Should i post my questions somewhere else or can I just ask in this issue (I will close it for now)?

Probably another issue if it is a different question!

The problem is... the module path may not be a valid variable name. What are we going to do when it is not?

I was thinking more like you don't really import the file, you only execute it (meaning the module doesn't get assigned to a variable).

I was thinking more like you don't really import the file, you only execute it (meaning the module doesn't get assigned to a variable).

Hhhhmmm... you mean use it to initialize the system or something?  If you don't export anything, how do you use any feature inside the module?
This is probably better to register an initialization function to be called in the beginning of the script, like init_keybindings.

I was assuming that the imports work similiar to nodejs require.
Example
main.rhai
import "test" as asdf;

print("world");

test.rhai
print("hello");

stdout
hello
world

If you don't want this in rhai by default I will probably just have to implement a custom syntax for this.

I was assuming that the imports work similiar to nodejs require.

Yes it does.  It executes the script to construct a module.  However, if you don't export anything in the script, then the net effect is that you've executed the child script and nothing else.
I think I understand what you're trying to do.  You are essentially using import as a simple include statement to run child scripts.  import is probably not the perfect keyword for this... use probably fits the purpose better.
However, what you want can be done.  We can have modules imported but not under any variable name.  That module will simply be executed but not referred to.  This can be done quite easily.
I'll add that feature in.

If you pull from the latest drop in https://github.com/schungx/rhai, you can now omit the as part of the import statement.

Thank you that was really fast 😮
I currently am defining my own syntax for import "...", because I need to be able to have one scope for the whole engine.
I tried to implement my own ModuleResolver, but I got a lot of lifetime errors so I now just have the following defined
engine.register_custom_syntax(
    &["import", "$expr$"],
    0,
    |engine, ctx, scope, inputs| {
        let cwd = scope.get_value::<String>("__cwd").ok_or("Failed to get __cwd")?;
        let file_name = get_string!(engine, ctx, scope, inputs, 0) + ".rhai";

        let mut path = PathBuf::new();

        path.push(cwd);
        path.push(file_name);

        engine.consume_file_with_scope(scope, path)?;

        Ok(().into())
    },
)?;

CustomResolver
One big problem I had, was that the new_position function is only public inside the crate, so I had to copy it over and change the return type from Box<EvalAltResult> to &mut Box<EvalAltResult>
use rhai::{Engine, EvalAltResult, Module, ModuleResolver, Position, Scope, AST};
use std::{cell::RefCell, collections::HashMap, path::PathBuf};

/// This function is private in rhai.
/// I just straight up copied it over.
fn new_position(res: &mut Box<EvalAltResult>, new_position: Position) -> &mut Box<EvalAltResult> {
    if res.position().is_none() {
        res.set_position(new_position);
    }

    res
}

pub struct CustomResolver<'a> {
    path: PathBuf,
    extension: String,
    cache: RefCell<HashMap<PathBuf, AST>>,
    scope: &'a Scope<'a>,
}

impl<'a> CustomResolver<'a> {
    pub fn new(scope: &'a Scope<'a>) -> Self {
        Self {
            path: PathBuf::default(),
            extension: String::from("rhai"),
            cache: RefCell::new(HashMap::new()),
            scope,
        }
    }
}

impl<'a> ModuleResolver for CustomResolver<'a> {
    fn resolve(
        &self,
        engine: &Engine,
        path: &str,
        pos: Position,
    ) -> Result<Module, Box<EvalAltResult>> {
        // Construct the script file path
        let mut file_path = self.path.clone();
        file_path.push(path);
        file_path.set_extension(&self.extension); // Force extension

        let ast = self
            .cache
            .borrow()
            .get(&file_path)
            .unwrap_or({
                let ast = engine.compile_file(file_path.clone())?;

                // Put it into the cache
                self.cache.borrow_mut().insert(file_path, ast);

                &ast
            });

        Module::eval_ast_as_new(self.scope, ast, engine)
    }
}

The reason I need a global scope is because when I create the engine I initialize two variables __keybindings and __set.
Whenever a bind .....  gets executed some metadata about the binding gets added to the __keybindings map and the same time for set and __set.
Is there a better way of having a global scope without having to mess with lifetimes a lot?
I tried using the real Config struct inside of the custom syntax callbacks, but rust told me that the config has to have static lifetime to not be outlived by the callback.
  Your 'a lifetime is preventing it from being used.  Rhai really doesn't want to work with references; it wants to work with solid data.
So, what you need to simply to give it data instead.  Using RefCell (or Mutex if you need multi-threaded).
Check out the side-effects test to see an example on how to maintain a shared state outside Rhai that you can use Rhai to modify.
The steps you need are:

Create your type containing your data:

struct Config {
    pub keybindings: ???,
    pub set: ???
}

Create a shared version of it:  Rc<RefCell<Config>>

Register the type: engine.register_with_name::<Rc<RefCell<Config>>>("Config");

Register methods: e.g. add_key_binding, set etc.

Clone the shared object and push it into your custom scope: scope.push_constant("config", config.clone());

You can then use config in your scripts, and setting properties on it will be reflected outside of Rhai.

After looking at your latest commit I saw this new documentation where the module script contains initialization statements that puts the functions registered with the Engine into a particular state. Does this mean it uses the Scope of the file that contains the import ".." statement?

If you want to use a custom scope for loading a module, you'll need to write your own custom syntax.  What you have is fine, except that I'd suggest using the word use instead of import.  You can then push the Config object into the scope before you run the script.
Otherwise, it is easy to actually register functions that capture the configuration object itself.  For example:
let wrapper = config.clone();
engine.register("add_key_binding", move |key: &str, binding: ???|  wrapper.keybindings.insert(key.to_string(), binding));

The move tells Rust that you want to move wrapper inside that closure.  If you register your function this way with Rhai, add_key_binding can be used anywhere, even inside a module load.  You no longer need a custom syntax.  You can just do import "abc".

You have been really helpful! Thank you a lot!
Hopefully the last question I have.
Example
custom syntax
engine.register_custom_syntax(
    &["example", "$block$"],
    0,
    |engine, ctx, scope, inputs|  {
        println!("before");
        // somehow execute AST block ....
        println!("after");

        Ok(().into())
    },
)?;

usage
example {
    print("hello world");
}

output right now
hello world
before
after

output I want
before
hello world
after

Is there any way too achieve this? Can I somehow tell the engine to not evaluate AST blocks when registering a custom syntax?

Strange, I tried the following and it worked just like you want it:
    let mut engine = Engine::new();

    engine.register_custom_syntax(&["example", "$block$"], 0, |engine, ctx, scope, inputs| {
        println!("before");
        engine.eval_expression_tree(ctx, scope, &inputs[0])?;
        println!("after");

        Ok(().into())
    })?;

    engine.consume("example { print(42); }")?;

prints:
before
42
after

I noticed that I accidently evaluted the block twice. Sorry.


why the non-Java frames preceding the Java frames not show ?

I have read the "Restrictions/Limitations" in readme, it said that "You will not see the non-Java frames preceding the Java frames on the stack".
I am curious about that，why this frame is not showed. I have read the function "getCallChain" in perfEvents_linux.cpp, It use PerfEvent to get the native stack, while the "perf-map-agent"  tool (https://github.com/jvm-profiling-tools/perf-map-agent) which based on perf can show these frames(such as start_threa, JavaMain, ...) .

async-profiler take a mixed approach where the perf stack is pasted on top of the Java stack. This means that perf does not walk any frames between the top Java frame and the bottom of the stack. Any intermediate/preceding native frames are thus invisible.

See #66

I thought the perf statck should contain every native frames (written by c/c++), which including start_thread, JavaMain. but actually, It seems not. I fell confused about it。

By design, async-profiler uses only the top of perf_events stack until the first Java frame. Everything below the first Java frame is obtained from AsyncGetCallTrace. Then these two parts are merged together.

This approach allows to get mixed call stack without facing the following disadvantages of pure perf_map_agent:

It requires -XX:+PreserveFramePointer option which imposes certain performance overhead. Without this option it won't be possible to walk through Java frames.
It works only on JDK 8u60+
It does not show interpreted methods
The stack depth is limited by 127 (unless tuned in kernel)
It produces large amount of temporary data on disk.

I will consider the requirement to show native stack below Java frames when implementing #66.

Thanks a lot for your explanation, but I still can not understand why the native stack,  which got from perf_events, does not contain the start_thread, JavaMain frames. Maybe I'm not familiar with perf_events.

@ygdyang If there is no -XX:+PreserveFramePointer JVM flag, kernel gets stuck at the first Java frame, since JVM does not maintain typical frame-linking structure when calling Java methods.
With -XX:+PreserveFramePointer flag JVM links frames as perf_events expect, so the stack will cointain start_thread etc. But async-profiler does not make use of it.

@apangin That is exactly what I was confused about before! Thank you very much!!
Here comes another question, Is it possible that a java project's stack looks like these:
native frames3
java frames2
native frames2
java frames1
native frames1

I know It may be quite normal in some python project. But I'm not sure If it's the same for java project, If It's possible, we may miss the native frames2 ? which may be useful, as it may not just the start_thread, JavaMain etc.
And even the java frames1 will be missing?

Yes, native code may do Java upcalls, and the stack will look like in your example.
With current approach async-profiler will show all Java frames and top native frames:
native frames3
java frames2
java frames1

OK, I got it.
Thanks a lot again!


Documentation for GenerateMultihistory and MultisetSubstitutionSystem

Changes

Adds documentation for GenerateMultihistory, MultisetSubstitutionSystem and the directory structure around them (Generators, Properties, Systems, and Types).

Comments

Some of this documentation is running slightly ahead by referencing non-existing functions. The links to them can be added once the functions are implemented.
Most code blocks are overly long because (1) they use GenerateMultihistory instead of more compact generators that are not yet implemented and (2) they have to convert to WolframModelEvolutionObject to make token-event graphs. The code should look much nicer once these are implemented.

This change is

This is now ready for review.


I compile the same contract using the same version of web3sdk, but get different bin files.

I found the last 76 characters of bin file may be different.
The last 4 digits are always 0029.
The middle 64 characters are the hash of metadata. Refer to here: https://solidity.readthedocs.io/en/latest/metadata.html?highlight=metadata#contract-metadata
So the first 8 of 76 may be the prefix of rlp? I don't quite sure of that.
The changing bin of the same contract can confuse the parse of contract result, including account and construct parsing.
I suggest that you could set the fixed String to the bin, or even remove this metadata hash, coz it's no use in fisco-bcos.

We could parse it by remove last 68 characters of bin. Close it.


Release arrow-rs / parquet version (51.0.0 or 50.1.0)

Is your feature request related to a problem or challenge? Please describe what you are trying to do.
50.0.0 was released about 2 months ago: https://crates.io/crates/arrow/50.0.0 (Jan 12, 2024)
Describe the solution you'd like
I would like to release the next version (51.0.0 or 50.1.0 if there are no API changes) with the accumulated changes since then
Describe alternatives you've considered
Additional context

I am happy to help with the logistics of this release
I don't think it is blocked on the object store release (which is minor) https://github.com/apache/arrow-rs/issues/5436
I filed this ticket as I saw https://github.com/apache/arrow-rs/pull/5293 which looks like a useful feature

label_issue.py automatically added labels {'parquet'} from #5293

label_issue.py automatically added labels {'arrow'} from #5505


x/build/cmd/gopherbot: released things get marked Unreleased

Any issue in an x/ package that is vendored into the release should not be milestoned Unreleased by Gopherbot.
Issue #32441 was left alone for a long time in part because it was in the Unreleased milestone.
And it appears to have ended up in the Unreleased milestone because Gopherbot put it there.
And Gopherbot appears to have put it there because the title said "x/net/http".
My assumption is that Gopherbot has a rule that issues with titles beginning with "x/" (or maybe a specific list of repos) get placed in the Unreleased milestone.
This rule is too aggressive: x/net/http is included in releases, so it is wrong to mark its issues Unreleased.
In addition to fixing Gopherbot, we may want to investigate potentially mis-milestoned issues.
A quick scan turns up the following issues in release-vendored packages which are in the Unreleased milestone but perhaps should not be:
#24870	x/net/dns/dnsmessage: cannot parse mDNS SRV records
#24288	x/net/dns: invalid assumptions about domain names and character strings
#38064	x/net/http2/h2c: POST from Java 11 client code causing error in h2cUpgrade
#37089	x/net/http2/h2c: http BaseContext/ConnContext methods are not used
#26682	x/net/http2/h2c: support closure of all connections and graceful shutdown
#29187	x/net/http2/hpack: Regression in dynamic table size updates
#20574	x/net/http2/hpack: Write customer-header into HPACK byName Map rather than byNameValue
#30407	x/net/http2: Expose isBadCipher
#13434	x/net/http2: TestServer_RejectsLargeFrames fails with "An existing connection was forcibly closed by the remote host" on windows
#18273	x/net/http2: TestTransportFlowControl takes 31 seconds on OpenBSD
#25793	x/net/http2: Transport ignores net/http.Transport.Proxy once connected
#18341	x/net/http2: Transport should handle 421
#17265	x/net/http2: access to maxConcurrentStreams
#17776	x/net/http2: add a MarkComplete method to ClientConnPool
#35860	x/net/http2: cannot create 'MaxConcurrentStreams' streams with a single ClientConn
#37505	x/net/http2: data race in onSameConn test helper
#15998	x/net/http2: data race on DebugGoroutines
#16029	x/net/http2: deal with half-closed remote in Transport, flaky TestTransportResPattern_c0h1d0t0, TestTransportResPattern_c1h2d0t0
#17775	x/net/http2: expose CloseIfIdle and ClientConnPoolIdleCloser
#32388	x/net/http2: pool deadlock
#16581	x/net/http2: rename and export Transport's t1 field
#31170	x/net/http2: sendWindowUpdate may send invalid window size increment
#25117	x/net/http2: steady performance degeneration seen with HTTP/2 over recent releases
#15592	x/net/http2: toggle HPACK dynamic table indexing for header
#29125	x/net/http: PROTOCOL_ERROR with HTTP2
#19603	x/net/idna: support label separators other than ASCII dot
#33508	x/sys/cpu: add support for ARM
#30239	x/sys/cpu: report core information and speed
#33963	x/sys/cpu: respect CPU feature overrides specified in GODEBUG
#9055	x/text/unicode/norm: LastBoundary is inconsistent

Yep. The logic for this is https://github.com/golang/build/blob/master/cmd/gopherbot/gopherbot.go#L835
@dmitshur @cagedmantis @toothrot

Issue #32441 was unfortunate in that it both had a "x/" prefix, yet it didn't match a real package "x/net/http2" that exists and is vendored.
One way to make that task of adding "Unreleased" milestone less likely to be applied on the wrong issues, without also causing more work for humans doing the issue triage, is if we start (automatically) tracking directories that exist in golang.org/x repos and packages that are vendored in the past 2 releases. (For an example of this being done, see the source code behind the https://goissues.org/-/packages page.)
Then it becomes possible to make it only add the "Unreleased" milestone if a the issue prefix matches a real package that exists, and that package isn't vendored.
This would prevent the milestone from being incorrectly added when an issue mistitled like "x/net/http" (instead of "net/http"). But it wouldn't help if it's mistitled like "x/image/draw" (instead of "image/draw") because golang.org/x/image/draw is a package that exists.

I have long term plans to work on this, but it won't happen in the Go 1.17 timeline, so moving this issue to Unreleased milestone which is appropriate.


[Docs] Build and update documentation automatically from Travis CI

Jazzy not has support for abstract and guide markdown files: https://github.com/realm/jazzy/pull/523 🎉
We no longer need to use a forked jazzy repo for building docs and can do it automatically from Travis CI.
These changes will update the gh-pages branch automatically when new commits are pushed to master or PR's are merged.
I have tested it on a separate branch successfully, but we won't really know if it works until it gets merged into master 😬😁.

[Current coverage][cc-pull] is 100%

Merging [#128][cc-pull] into [master][cc-base-branch] will not change coverage

@@           master   #128   diff @@
====================================
  Files           6      6
  Lines         169    169
  Methods         0      0
  Messages        0      0
  Branches        0      0
====================================
  Hits          169    169
  Misses          0      0
  Partials        0      0

Powered by Codecov. Last updated by [b095f9e...0a1ab50][cc-compare]
[cc-base-branch]: https://codecov.io/gh/ReSwift/ReSwift/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/ReSwift/ReSwift/compare/b095f9e5d4b640d4ba277fe2ca9a184f62f990b4...0a1ab508b0b2a16ca4ad964835ce40eaf072ea44
[cc-pull]: https://codecov.io/gh/ReSwift/ReSwift/pull/128?src=pr


Matching Mario

🎮 Game Request
It is a spin and match images game, if you get all the parts you win else you can re-spin.
Point down the features
It will have a spin again button which will reset the game and give the user next chance.
Select program in which you are contributing
GSSoC23
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

Hey @laibaahsan27 !
Thank you for raising an issue 💗
You can self assign the issue by commenting /assign in comment 😀
Make sure you follow CODE OF CONDUCT and CONTRIBUTING GUIDELINES 🚀
Don’t Forget to ⭐ our GameZone🎮
Make sure you join our Discord🕹

Hey @laibaahsan27! 🙂
It seems like you are not following proper guidelines !! 👀
Read documentation properly !!🙏
If you have any queries reach out to us on Discord🕹 .

Hey @laibaahsan27 ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇

/assign


e2e testing framework

makes use of ginkgo and gomega
tests can be run against an existing local vagrant cluster
tests include checks for pod-to-pod connectivity, service-proxy
functions.

decided to merge manually into tests branch.


Publish Packages to GitHub

https://docs.github.com/en/actions/publishing-packages/publishing-java-packages-with-gradle
https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry

Relates to #423


Set up requester pays

After having a few $20 days, we've decided to limit our exposure to unexpected data egress fees by turning on Requester Pays for the storage buckets containing the pudl-catalog.

[x] Enable requester pays on gs://intake.catalyst.coop
[x] Make the tests supply a billing project so they can access the storage buckets.
[x] Check that we're only downloading a minimal amount of data (a couple of state-years) in the tests.
[ ] Update the example notebook to use requester_pays and new dd.read_parquet() args.
[ ] Provide documentation / links for setting up a user billing project in the README.

See also comments on this issue


Added the ability to turn logging on/off in the runtime

This is a quick-fix for #435 issue. The PR contains the following changes:

A new class TyphoonLogging.h with two methods: + (BOOL)isLoggingEnabled and + (void)setLoggingEnabled:(BOOL)enabled. The second one can be used somewhere before or after Typhoon instantiation process to turn the logging on or off.
Some changes in the built-in file OCLogTemplate.h - it now looks at the state of Typhoon isLoggingEnabled method before exact logging.
Turned off logs in the TyphoonConfigPostProcessor - not sure that they were necessary. To turn them off the user had to hook before the Typhoon instantiation - and that's rather inconvenient.

I think of implementing more flexible logging system, with providing the logging levels in the runtime:
+ (void)setLoggingLevel:(TyphoonLoggingLevel)level;

Maybe we can even use Cocoalumberjack with it, just like MagicalRecord does (https://github.com/magicalpanda/MagicalRecord/wiki/Logging).

@jasperblues I think this is for you to review, because you are author of Typhoon logging :-)

@jasperblues I think this is for you to review, because you are author of Typhoon logging :-)
Let's try to avoid strong code ownership.

Turned off logs in the TyphoonConfigPostProcessor - not sure that they were necessary. To turn them off the user had to hook before the Typhoon instantiation - and that's rather inconvenient.

The main reason for this feature is to log the selected TyphoonConfig on startup (dev, prod, etc). This is an info level config, rather than a debug. I'd be sad to see it go.

Let's try to avoid strong code ownership.

I'm not using any Typhoon logs, so I don't know which way is better (runtime logs or precompiled). Since you was interested in that feature, I asked your opinion.

About using a logging framework (we've had this conversation before):

@jasper Thanks for the review!
Sure, adding Cocoalumberjack as a dependency is a very bad option - I was talking about something like MagicalRecord way - you can look at their implementation (https://github.com/magicalpanda/MagicalRecord/blob/master/MagicalRecord/Core/MagicalRecordLogging.h).
Controlling logging behaviour through cocoapods script is a rather inconvinient way - e.g. I always try to incapsulate all of the logging setup (application, third party dependencies) in one place. I have a full control of this place and can easily change logging levels for different build schemes - either by using a preprocessor flag, or by injecting a different instances of this LoggingService.
We lack the possibility of controlling logging behavior in the runtime. Do you like the MagicalRecord approach?

Ah, yes the MR way looks nice!

So, for now we'll change the initial logging level to info, and later I'll return back to the logging and implement something in MagicalRecord way.


chore: build charm in independent workflow step

Description
Build charm in independent workflow step.
Checklist:

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that validate the behaviour of the software
[ ] I validated that new and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules
[ ] I have bumped the version of the library

https://github.com/canonical/sdcore-upf-operator/pull/61/commits/f66dbb143775f3bf3e8f79afc98a3ca1f40b8e31 didn't get signed for some reason


Feature: Add new Processing 3 API elements to syntax definition

Things like fullScreen are not yet in our syntax definition and are not currently highlighted. This is just an issue to help track this update. Let's do this right before Processing 3 is out of beta. I've assigned myself to this issue.

Fixed in f6ef676388f4e4944974626de042589b32e83023.


Unknown CMake command "clip_mode"

Hi,
I've got this error while doing a cmake-js compile (cmake version 3.6.2)
CMake Error at CMakeLists.txt:11 (include):
  include could not find load file:

    ClipMode

CMake Error at CMakeLists.txt:53 (clip_mode):
  Unknown CMake command "clip_mode".

I can't find anything about it online. So if you have an idea. Thanks

Hi,
Sorry for the slow reply. That error might indicate that the git submodule code has not been cloned. Is there anything under the deps/ subdirectory?

Hi, no worry!
Under deps/ I have CMakeLists.txtand  libsamplerate(empty folder).
Should I import libsampkerate under deps/libsamplerate first?
I also tried to do the cmake-js compile under deps/, it gives me the same error.

To pull the git submodules, cd to the root directory of node-libresample and then
git submodule update --init --recursive
Now npm install should complete.


update readme for django 3.1

Ended up wasting around 20-30 minutes trying to solve this issue until I found out the documentation is a little behind. Would really love for this to be merged! 😀

Thanks for your contribution!


sdist-ghc is a bit too indiscriminant in copying sources

Hmm, one thing I noticed is that if you have build artifacts in your tree (e.g. from the make build system), hadrian will happily copy these into the source distribution. e.g. a test in a dirty tree that I had laying around gave me this,
/------------------------------------------------------------------------------------------------------------------\
| Copy file                                                                                |
|      input: libraries/containers/dist-install/build/Data/Map/Lazy/Merge.dyn_o                                    |
|  => output: sdistprep/ghc/ghc-8.3.20170721-src/libraries/containers/dist-install/build/Data/Map/Lazy/Merge.dyn_o |
\------------------------------------------------------------------------------------------------------------------/

Ideally we would only take precisely the files that are needed (and never binaries).

Aha, left-over object files could perhaps be the reason for you seeing something being built by sdist-ghc. Copying might have introduced tracking, which in turn started to bring the files up to date.

Sounds like it.

I've been trying to figure out what the Make build system does here, and it appears that it actually cleans the tree first and then simply copies all files. So, Make will also happily copy any files left over after the cleaning.
So, I see two approaches:

We do what the Make does: we run the clean build rule first and then run sdist, as it is now. We can also hardcode the exclusion of dist and dist-install subdirectories produced by Make, just in case.
We do The Right Thing by copying exactly the source files for each package, as specified in the .cabal files. This is harder to implement and I'm sure there will also be plenty of files that should be copied but which are not actually listed in .cabal files, so this might require fixes in the GHC.

I've implemented the first approach in the above commit.
@bgamari Could you give it a try? Do you think this is a sufficient solution for now?

@alpmestan @angerman You commented out cleanSourceTree here:
https://github.com/snowleopard/hadrian/blob/master/src/Rules/SourceDist.hs#L15
Are you sure we no longer need to clean the source tree before creating a source distribution? If yes, I'll simply remove this function (and close this issue).

I'm not 100% sure. In particular, we probably want to exclude the build root, in case it's somewhere in ghc's source tree (and I quite often do that, I often run hadrian from the root of ghc's source tree, doing something like hadrian [...] --build-root=_something, ending up with a bunch of _-prefixed directories at the top of GHC's tree, with different (by the flavour or some other criterion) working builds sitting next to each other there. We obviously don't want to embed those, but while we have access to the build root used for the current hadrian command, we don't have access to past ones, so the blacklisting going on here becomes a bit of a problem.
The "obvious" solution is to instead whitelist top-level files/dirs, hoping that ghc's toplevel structure does not change too often... @snowleopard Maybe I'm overlooking something?

@alpmestan I'd say that until we are 100% sure, we should keep invoking something like cleanSourceTree. It doesn't cost much but can save maintainers some time. Hence I brought it back.
Perhaps the current implementation of cleanSourceTree can be improved? I don't have a strong opinion on how it should be implemented, but we can keep this issue open to discuss. Perhaps @bgamari, who opened this issue, could provide some input.


cmake: allow building SDL_mixer with not all dependencies present + make libflac/drflac mutually exclusive

When CMake is configured with -DSDL3MIXER_STRICT=OFF , you can build SDL3_mixer with some dependencies not present (that feature will be disabled). The default is -DSDL3MIXER_STRICT=OFF.
Make drflac and libflac mutually exclusive. By default, drflac is used.

Make drflac and libflac mutually exclusive. By default, drflac is used.

Note that, as far as I can see, the issue doesn't happen with the drmp3 / mpg123 pair or with the libxmp / libmodplug pair: only happens with the drflac / libflac.

You can still configure with -DSDL3MIXER_MP3_DRMP3=ON -DSDL3MIXER_MP3_MPG123=ON.
This pr also added a small post-configuration summary of enabled/disabled backend.

You can still configure with -DSDL3MIXER_MP3_DRMP3=ON -DSDL3MIXER_MP3_MPG123=ON.

Yes, but now that you made drflac and libflac mutually exclusive, the same won't be true for them: That's why I added my note.

You can still configure with -DSDL3MIXER_MP3_DRMP3=ON -DSDL3MIXER_MP3_MPG123=ON.

Yes, but now that you made drflac and libflac mutually exclusive, the same won't be true for them: That's why I added my note.

Sorry for me being so verbose, your use of the word "issue" confused me.

FWIW, the following 'remedies' the original issue I reported
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d344b77..c28ff08 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -101,7 +101,7 @@ option(SDL3MIXER_SNDFILE_SHARED "Dynamically load libsndfile" "${SDL3MIXER_DEPS_

 option(SDL3MIXER_FLAC "Enable FLAC music" ON)

-cmake_dependent_option(SDL3MIXER_FLAC_LIBFLAC "Enable FLAC music using libFLAC" ON SDL3MIXER_FLAC OFF)
+cmake_dependent_option(SDL3MIXER_FLAC_LIBFLAC "Enable FLAC music using libFLAC" OFF SDL3MIXER_FLAC OFF)
 cmake_dependent_option(SDL3MIXER_FLAC_LIBFLAC_SHARED "Dynamically load LIBFLAC" "${SDL3MIXER_DEPS_SHARED}" SDL3MIXER_FLAC_LIBFLAC OFF)

 cmake_dependent_option(SDL3MIXER_FLAC_DRFLAC "Enable FLAC music using drflac" ON SDL3MIXER_FLAC OFF)


Show hidden album with all other albums

Hello! I have already sought advice.
Tell me, how to display a hidden album with other albums?

Hi, @Lokemy
You can use this options fetchCollectionTypes
e.g. )
configure.fetchCollectionTypes = [
(PHAssetCollectionType.smartAlbum, PHAssetCollectionSubtype.smartAlbumGeneric),
(PHAssetCollectionType.smartAlbum, PHAssetCollectionSubtype.smartAlbumPanoramas),
...(whatever you want)
]


Availability of pretrained model checkpoint

Hello! I'd like to know if you could share the model weights like you did for spatialppi 1.0, it'd be greatly appreciated. Thanks!

We have been updating the code repository recently.  The trained weights have been uploaded.