401 Unauthorized

I get a 401 Unauthorized response: {"error":"The access token is invalid"} after reloading page (the initial API request using token works).

Please provide more information about your issue, including the calls you're making to the library to get where you're seeing this error.

Sorry, disregard. I was not saving the access token properly and was injecting the code from url param on subsequent requests.


Text in app mysteriously auto translated

I have a very weird problem in my app that uses ngx-translate. I am not sure if my error is caused by ngx-translate, but I am wondering if anyone has experienced anything similar.
In my app I have a questionnaire that is answered by many 100s of new users every week in different countries using different languages with ngx-translate. It works fine for most users, but occasionally it will show the text from ngx-translate files looking like it went through google translate or something. A Swedish sentence will still be in Swedish, but the language looks like it's written by a 5 year old. It shows text that does not exist in my app. It is still the same text as in the translation files, but it looks like it has gone through a bad translation service.
I am unable to reproduce the problem myself, but it keeps popping up for multiple users using different browser (seen in IE, Edge and Chrome).

We are also experiencing this issue in a rather large Angular application and so far it's been reported by our norwegian users. We are still trying to pinpoint if there is any patterns to this bug but right now it seems very random.
Some examples:
Overview -> norwegian translation: "Oversikt" -> Bug: "Oversikt (oversikt)"
Live Data -> norwegian translation: "Sanntidsdata" -> Bug: A random string that we can't find the origin of.


Test: DNA.db with manual scan datetime override

database_file: data/test/DNA.db
...
scan_datetime:
  override: yes
  manual_scan_datetime: "2019-05-21 20:57:43"

Tested successfully!


Update CLI --client_secret error message

Information

Onefuzz version: 5.15
OS: n/z

Provide detailed reproduction steps (if any)
Including the parameter --client_secret in the command line results in the error
onefuzz.exe: error: unrecognized arguments: --client_secret <secret>
The client secret has been moved into an environment variable in PR #1918. We need to improve the error message.
AB#41684238

The help page for the onefuzz config command no longer lists --client_secret as an optional argument.


[BUG]how to get start from mars localily

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
To help us reproducing this bug, please provide information below:

python version  py3.7.x
mars  github master source codes
crucial packages is download by  “ {pip install -e ".[dev]"}”
4 . error info:

here is my py codes：

so，how can i deal wit this problem？thank you~
Expected behavior
A clear and concise description of what you expected to happen.
Additional context
Add any other context about the problem here.

@wjsi

(base) zzr@szxphisprd01845:~/workspace/mars$ pip install -e ".[dev]"
Looking in indexes: http://mirrors.tools.huawei.com/pypi/simple
Obtaining file:///workspace/zzr/workspace/mars
Requirement already satisfied: numpy>=1.14.0 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from pymars==0.8.0a3) (1.21.2)
Requirement already satisfied: scipy>=1.0.0 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from pymars==0.8.0a3) (1.7.0)
Requirement already satisfied: scikit-learn>=0.20 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from pymars==0.8.0a3) (0.21.3)
Requirement already satisfied: numexpr>=2.6.4 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from pymars==0.8.0a3) (2.7.0)
Requirement already satisfied: cloudpickle>=1.5.0 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from pymars==0.8.0a3) (1.6.0)
Requirement already satisfied: pyyaml>=5.1 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from pymars==0.8.0a3) (5.1.2)
Requirement already satisfied: psutil>=4.0.0 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from pymars==0.8.0a3) (5.6.3)
Requirement already satisfied: tornado>=6.0 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from pymars==0.8.0a3) (6.0.3)
Requirement already satisfied: sqlalchemy>=1.2.0 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from pymars==0.8.0a3) (1.3.9)
Requirement already satisfied: pickle5 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from pymars==0.8.0a3) (0.0.11)
Requirement already satisfied: shared-memory38>=0.1.1 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from pymars==0.8.0a3) (0.1.2)
Requirement already satisfied: pandas>=1.0.0 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from pymars==0.8.0a3) (1.3.2)
Requirement already satisfied: uvloop>=0.14.0 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from pymars==0.8.0a3) (0.16.0)
Requirement already satisfied: cython>=0.29 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from pymars==0.8.0a3) (0.29.13)
Requirement already satisfied: pytest>=3.5.0 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from pymars==0.8.0a3) (6.2.5)
Requirement already satisfied: pytest-cov>=2.5.0 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from pymars==0.8.0a3) (2.12.1)
Requirement already satisfied: pytest-timeout>=1.2.0 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from pymars==0.8.0a3) (1.4.2)
Requirement already satisfied: pytest-forked>=1.0 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from pymars==0.8.0a3) (1.3.0)
Requirement already satisfied: pytest-asyncio>=0.14.0 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from pymars==0.8.0a3) (0.15.1)
Requirement already satisfied: flake8>=3.8.0 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from pymars==0.8.0a3) (3.9.2)
Requirement already satisfied: mock>=4.0.0 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from pymars==0.8.0a3) (4.0.3)
Requirement already satisfied: importlib-metadata in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from flake8>=3.8.0->pymars==0.8.0a3) (0.23)
Requirement already satisfied: pycodestyle<2.8.0,>=2.7.0 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from flake8>=3.8.0->pymars==0.8.0a3) (2.7.0)
Requirement already satisfied: pyflakes<2.4.0,>=2.3.0 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from flake8>=3.8.0->pymars==0.8.0a3) (2.3.1)
Requirement already satisfied: mccabe<0.7.0,>=0.6.0 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from flake8>=3.8.0->pymars==0.8.0a3) (0.6.1)
Requirement already satisfied: python-dateutil>=2.7.3 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from pandas>=1.0.0->pymars==0.8.0a3) (2.8.0)
Requirement already satisfied: pytz>=2017.3 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from pandas>=1.0.0->pymars==0.8.0a3) (2019.3)
Requirement already satisfied: iniconfig in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from pytest>=3.5.0->pymars==0.8.0a3) (1.1.1)
Requirement already satisfied: pluggy<2.0,>=0.12 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from pytest>=3.5.0->pymars==0.8.0a3) (0.13.0)
Requirement already satisfied: py>=1.8.2 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from pytest>=3.5.0->pymars==0.8.0a3) (1.10.0)
Requirement already satisfied: toml in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from pytest>=3.5.0->pymars==0.8.0a3) (0.10.2)
Requirement already satisfied: packaging in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from pytest>=3.5.0->pymars==0.8.0a3) (20.9)
Requirement already satisfied: attrs>=19.2.0 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from pytest>=3.5.0->pymars==0.8.0a3) (19.2.0)
Requirement already satisfied: zipp>=0.5 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from importlib-metadata->flake8>=3.8.0->pymars==0.8.0a3) (0.6.0)
Requirement already satisfied: coverage>=5.2.1 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from pytest-cov>=2.5.0->pymars==0.8.0a3) (5.5)
Requirement already satisfied: six>=1.5 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from python-dateutil>=2.7.3->pandas>=1.0.0->pymars==0.8.0a3) (1.12.0)
Requirement already satisfied: joblib>=0.11 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from scikit-learn>=0.20->pymars==0.8.0a3) (0.13.2)
Requirement already satisfied: more-itertools in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from zipp>=0.5->importlib-metadata->flake8>=3.8.0->pymars==0.8.0a3) (7.2.0)
Requirement already satisfied: pyparsing>=2.0.2 in /workspace/zzr/anaconda3/lib/python3.7/site-packages (from packaging->pytest>=3.5.0->pymars==0.8.0a3) (2.4.2)
Installing collected packages: pymars
Attempting uninstall: pymars
Found existing installation: pymars 0.8.0a3
Uninstalling pymars-0.8.0a3:
Successfully uninstalled pymars-0.8.0a3
Running setup.py develop for pymars
Successfully installed pymars-0.8.0a3
install info is success

i have solved this hello world, because  of i call the new_session() not in main
func .
i used to write cpp style code


Provide means to validate SKOS turtle files for SkoHub compliance

This might be used to add test to a GitHub repo that let you know whether your SKOS vocab is "SkoHub-ready".

We should not only provide a shape but also a setup for automatic testing in a GitHub repo.

We should probably also add Skosify and/or qSKOS into the automatic test pipeline. As this might mitigate a lot of errors (plus the ones SkoHub doesn't care about, see https://github.com/dini-ag-kim/hochschulfaechersystematik/issues/24 & https://github.com/dini-ag-kim/hochschulfaechersystematik/issues/25) we might check these first.

I created a repo to work on the shape since I think it might be good to have the shape separate from code: https://github.com/skohub-io/shapes

I created a github-workflow which will validate all changed ttl files and will fail if one turtle file does not validate against the shape. You can try it out by forking this repo and playing around with the .ttl files: https://github.com/sroertgen/test-vocabs
Now I'm actually unsure on how to proceed. Should we create a template-vocab-repo, where we have this action and the scripts added a maybe a basic instruction on how to write a SKOS-file? Then we could advertise this as the starting point to develop vocabularies and have a mechanism to validate as well.
@acka47  What do you think?

Should we create a template-vocab-repo, where we have this action and the scripts added a maybe a basic instruction on how to write a SKOS-file? Then we could advertise this as the starting point to develop vocabularies and have a mechanism to validate as well.

Sounds good to me. Most urgent is the inclusion of this step in the docker version of SkoHub Vocabs, though, isn't it?

A note to my future self:
When we are sure on how to proceed, we should add a note in the README on how to validate SKOS files

I added information on how to validate SKOS vocabs here: https://github.com/skohub-io/skohub-vocabs/tree/91-validate-skos#validation-of-skos-vocabularies

I think to close this we have to do the following steps:

[ ] move the docker image used for automatic validation into skohub namespace
[ ] adjust the script in the vocab-template repo
[ ] add info about validation with docker here: https://github.com/skohub-io/shapes/#check-with-docker


Limit Media Like Per User

Hello guys,
I spent some time to check in "Issues" if I can find my solution but couldn't find anything.
Here is my problem:
When I launch the "multi_script_CLI", I choose "2. Like followers" and I choose a username database. Everything works well but the thing is that usually, for each users, the bot likes around 18 medias after filtration. What I want to do, is to limit the number of media like per users. Don't want to be 18 but less.
Thank you for your help

On line 376 in "multi_script_CLI" you need to add "nlikes=2" if you only want to like 2 photo from the user.
So line 376 should read:
bot.like_followers(user_id, nlikes=2)

Great! Thank you straylan for the answer, now it works perfectly 👍


Calling a BAML function in a celery worker on darwin-arm64 reliably triggers a SIGSEGV

Repro instructions on my machine
Log message: https://gist.github.com/sxlijin/5575618890e39386c5494deb1051974f

This is resolved now thanks to #803
The bug was caused by UB of async futures mixing poorly with FFI boundaries and pickling from multiprocessing.
As long as a user uses the new sync interface exposed by baml, crashes should not happen.


Investigate segfault at the end of omnisci-based modin when operate on Arrow batches

Seen on every test with consumeArrowTable call. Likely memory ownership problem

Test to reproduce (no modin is required)
import pandas as pd
import pyarrow as pa
import sys
sys.setdlopenflags( 1|256 )    # RTLD_LAZY+RTLD_GLOBAL
from dbe import PyDbEngine as PDE
pdb = PDE("data", 8874)
df = pd.DataFrame([[1, 10, 100], [2, 20, 200], [3, 30, 300]], columns=['a', 'b', 'c'])
#print(a)
#f = pd.DataFrame([[1, 10, 100], [2, 20, 200], [3, 30, 300]], columns=['a', 'b', 'c'])
a = pa.Table.from_pandas(df)
pdb.consumeArrowTable('testtable', a)

index 2ca68b64..c4dc4447 100644
--- a/Embedded/DBEngine.cpp
+++ b/Embedded/DBEngine.cpp
@@ -19,6 +19,7 @@_/*
 #include <boost/filesystem.hpp>
 #include "Catalog/SysCatalog.h"
 #include "DataMgr/ForeignStorage/ArrowForeignStorage.h"
+#include "DataMgr/ForeignStorage/ForeignStorageInterface.h"
 #include "Fragmenter/FragmentDefaultValues.h"
 #include "Parser/ParserNode.h"
 #include "QueryEngine/ArrowResultSet.h"
@@ -169,6 +170,7 @@ class DBEngineImpl : public DBEngine {
       query_runner_->reset();
       query_runner_ = nullptr;
     }
+    ForeignStorageInterface::destroy();
     data_mgr_.reset();
     base_path_.clear();
   }```

This change seems to fix the problem. Likely we should perform all omnisci db object destructions during engine deleting not later

Landed in https://github.com/intel-go/omniscidb/commits/consuming_arrow_table


Meteor package does not use a prefixer

Since Materialize moved away from using a prefixer mixin to autoprefixer, it seems that prefixing is not done for Meteor because Meteor package is now using SCSS files directly, without a mixin.

Hm, it seems one can use seba:minifiers-autoprefixer.


⚠ Bofrost.es has degraded performance

In 40fe648, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1617 ms

Resolved: Bofrost.es performance has improved in d6b8633 after 8 minutes.


404 /BlazorServerSample.styles.css for BlazorServerSample project

Issue description
When run the sample from the following folder /aspnetcore/blazor/common/samples/5.x/BlazorServerSample. Navigate to https://localhost:5001 in the browser. The style is not correct. In the dev console of the browser, there is an 404 error for https://localhost:5001/BlazorServerSample.styles.css.
Software versions
Check the .NET target framework(s) being used, and include the version number(s).

[x] .NET Core
[ ] .NET Framework
[ ] .NET Standard

.NET SDK (reflecting any global.json):
 Version:   5.0.100
 Commit:    5044b93829

Runtime Environment:
 OS Name:     ubuntu
 OS Version:  20.04
 OS Platform: Linux
 RID:         ubuntu.20.04-x64
 Base Path:   /usr/share/dotnet/sdk/5.0.100/

Host (useful for support):
  Version: 5.0.0
  Commit:  cf258a14b7

.NET SDKs installed:
  2.1.811 [/usr/share/dotnet/sdk]
  3.1.404 [/usr/share/dotnet/sdk]
  5.0.100 [/usr/share/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.All 2.1.23 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.23 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.1.10 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 5.0.0 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.1.23 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.1.10 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 5.0.0 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

step to reproduce error

clone the master branch,
enter to folder /aspnetcore/blazor/common/samples/5.x/BlazorServerSample of the repo
run dotnet run
navigate to https://localhost:5001
open devtool of the browser
it shows an 404 error for https://localhost:5001/BlazorServerSample.styles.css

Hello @DerekLiang ... I can't repro that here ...

Open an issue for the product unit to investigate at ...
https://github.com/dotnet/aspnetcore/issues
Please add a cc: @guardrex to your opening comment there so that I can follow along.


stop() can throw undefined errors

I am closing a toad scheduler instance using a shutdown hook and I often see this error when the hook calls stop():
Cannot read properties of undefined (reading 'engines')
    err: {
      "type": "TypeError",
      "message": "Cannot read properties of undefined (reading 'engines')",
      "stack":
          TypeError: Cannot read properties of undefined (reading 'engines')
              at stop (/Users/matt/Projects/monorepo/node_modules/toad-scheduler/dist/lib/toadScheduler.js:40:49)
              at fn (file:///Users/matt/Projects/monorepo/admin-api/src/shutdown.ts:8:36)
              at async run (/Users/matt/monorepo/node_modules/close-with-grace/index.js:92:19)
    }

Not sure what is happening exactly, but a bit more defensiveness with checking for engines !== undefined would help the close() function.

thank you for the report! will take a look


Fix clippy warnings

This PR fixes clippy warnings that have been accumulating over the past PRs.

Good idea!
Can we first merge the existing PRs, though? This touches code in quite a few places and I might have fixed a few of these already.


bug: changing listener hostname has unexpected behaviour

Discovered during testing of #515
See https://kubernetes.slack.com/archives/C05J0D0V525/p1695643188976249 for discussion
TLDR: If you change the hostname of a listener in a multi cluster Gateway to some host that doesn't have a HTTPRoute attached, DNS records are created in the DNS provider.
This is an edge case where a user has set up their gateway and httproute(s) correctly,
then decide change the listener to some other hostname.
Also, the records remain in the DNS provider as the DNSRecord.status.endpoints never gets updated with the new endpoints, and the DNSRecord is deleted as well.

A bit more details on the task.
What is happening:

You change the hostname in the gateway listener
DNSPolicy controller watches GW and gets triggered
It goes into the reconcileGatewayDNSRecords
It takes names of GW listeners from status and finds a matching one from the spec to get attached routes (the GW controller hasn't yet updated the GW status so we have attached routes)
Since we still have routes attached, it builds and applies a DNS record. The DNSRecords are based on the GW name and listener name in the same NS as the MZ.
The spec.endpoints in the DNSRecord get updated to the new hostname (even though there's no HTTPRoute with that matching new hostname.
New records get created in the DNS provider
GW gets updated with 0 routes attached. We trigger DNSPolicy controller again. But this time we see 0 routes and delete DNS record.
The status.endpoints on the DNSRecord don't get updated with the new hostname in time for the deletion, so the old hostname records are deleted from the DNS provider
You're left with no DNSRecords, and DNS entries in your provider for the new hostname, even though there never was any HTTPRoute attached to the listener with that matching host

The way we want it to work is at the step 3 to recognize that something odd is happening with hostnames on listeners. There is a moment (after the dnsHelper.createDNSRecordForListener and before dnsHelper.setEndpoints if lines got moved around) when we have access to the GW CR and DNSRecord CR before we update endpoints and we could check for hostname changes. This would let us realize that we are dealing with this edge case and we could go and poke around to validate the attachedRoutes field. Right now it is done in the GW controller by looking up ManifestWorks and extracting the attachedRoutes from downstream GW. Will just drop part of the MW spec here for a reference.
 - feedbackRules:
        - jsonPaths:
            - name: addresses
              path: .status.addresses
            - name: listenerapiAttachedRoutes
              path: .status.listeners[?(@.name=="api")].attachedRoutes

The other way would be to go downstream and get the GW to check the listener hostname there.
The problem i was trying to solve before parking this ticket is how to ensure that we can trust the attachedRoutes in the status of the upstream GW. And how to make it universal for the multi- and single-cluster Gateways that will end up in that controller. Depending on the #496 and how it will be implemented the answer to this one might be different. But there is still a question with the multi-cluster implementation. Since we try to decouple controller from the OCM relying on the Manifest Work doesn't seems like a good idea. We could be getting to the downstream GW but it also seems like a wrong thing to do. The idea I was looking into is to update GW controller to report to the status hostname so that could be checked against the spec. We have an ampty array of conditions that we could use for this purpose.
Something like:
metav1.Condition{
		Type:               "Processed hostname",
		Status:             metav1.ConditionTrue,
		Reason:            "hostname processed",
		ObservedGeneration: targetRef.GetGeneration(),
                Message:          "hostname.from.the.downstream.gateway"

Since we already toying with custom conditions.
This would result in a simple == on strings to prevent the bug. That one, however, would require updating ManifestWorks to look for the hostname as well.
Take this with a grain of salt - haven't discussed the solution with other members of the team. And by the time this bug will be dealt with, there might be a better solution to the problem.

This issue is stale because it has been open for 60 days with no activity.

This issue was closed because it has been inactive for 30 days since being marked as stale.

This issue is stale because it has been open for 60 days with no activity.

This issue was closed because it has been inactive for 30 days since being marked as stale.


[vault-secrets-webhook] Configurable default behavior of vault-role

Vault-secrets-webhook uses the env var VAULT_ROLE to provide the default role used for the Kubernetes auth method. If it is empty, it uses the ServiceAccount of the Pod. This is excellent for environments with tight security, but requires that ServiceAccounts and roles in Vault are always kept in sync. But in a bit more relaxed environments, one might want to use the Namespace of the Pod as a default role (which is currently not supported). It is true, that this can be accomplished by assigning a default ServiceAccount to all Pods, but it is troublesome to always set this in all Helm charts.
Suggestion
The env var VAULT_ROLE could accept two special values to specify what type of automatic default roles should be used. For example:

VAULT_ROLE="auto-serviceaccount" (also VAULT_ROLE=""): uses the ServiceAccount of the Pod as the default role
VAULT_ROLE="auto-namespace": uses the Namespace of the Pod as the default role (maybe prefixed with namespace-${namespace})

The logic needs to be added here:

https://github.com/banzaicloud/bank-vaults/blob/7c55c84d06533d4273486f216d9a01adf67953cf/cmd/vault-secrets-webhook/main.go#L135-L144

@gw0 good idea, I agree with you about this is not always the best default behavior. Are you about to submit this change?

I could try, but my Go skills are lacking. Are the names "auto-serviceaccount" and "auto-namespace" good?

Yes, absolutely, Thanks! (I'm ready to help you through the process).

https://github.com/banzaicloud/bank-vaults/issues/954 is related to this.
Our serviceaccount names sometimes collide across namespaces. Prefixing the role name with the namespace would greatly help.


PEER implementation

Hi @lucidrains would you consider implementing the new Deepmind 1M MoE?
Mixture of A Million Experts
Abstract
The feedforward (FFW) layers in standard transformer architectures incur a linear increase in computational costs and activation memory as the hidden layer width grows. Sparse mixture-of-experts (MoE) architectures have emerged as a viable approach to address this issue by decoupling model size from computational cost. The recent discovery of the finegrained MoE scaling law shows that higher granularity leads to better performance. However, existing MoE models are limited to a small number of experts due to computational and optimization challenges. This paper introduces PEER (parameter efficient expert retrieval), a novel layer design that utilizes the product key technique for sparse retrieval from a vast pool of tiny experts (over a million). Experiments on language modeling tasks demonstrate that PEER layers outperform dense FFWs and coarse-grained MoEs in terms of performance-compute trade-off. By enabling efficient utilization of a massive number of experts, PEER unlocks the potential for further scaling of transformer models while maintaining computational efficiency.
https://arxiv.org/pdf/2407.04153
From my understanding with some added complexity in retrieving, you can replace FFN with PEER network keeping param count and flop same and still increase performance.

@huu4ontocord would you like to pitch this on the discord?


Support lazy loaded modules in NgModule parsing

resolves #916

@rajinder-yadav @tyllrb If you could make a start at reviewing this logic, that would be great. I may still tweak one or two things.

@rajinder-yadav I added a small improvement here in another commit. Can you give it a quick review and approve if it's ok?

:ship:


problem Fenix2GSX

how can i fix this?
thank you

Version of Fenix and Fenix2GSX?

version of Fenix is V<IP_ADDRESS>2
and from Fenix2GSX 0.40.10

Downgrade Fenix2GSX to 0.4.9 - just run the Installer. (or upgrade Fenix to .407)
The Changelog is pretty clear.


Teammate cycling keybinding changes

As discussed in issue #206 this branch aims to slightly change how cycling through teammates works. So far the first three points in the issue have been implemented, whereas the fourth optional task remains.

(Optional) Add the new shift behavior restricted to teammates on a level. Here you should be able to switch through teammates, and change the direction of selection with shift, but only for the teammates on the current level. This would be done with the binding Alt+Shift-Tab

Because Alt+Shift+Tab isn't defined as a Key type yet in Key.hs, adding it would maybe require some additional work such as translating the Alt+Shift+Tab key code to the type in Sdl.hs

Yes, you are right you need to add modifier AltShift, similar to ControlShift and handle the fallout in all files, including Sdl.hs. You would also need git grep ControlShift for the cases that compiler wouldn't signal of itself
I will not nitpick until you work on it some more, but it's very promising already.

I was able to implement it without having to mess around in the various UI files(Sdl, Dom, Gtk, etc.) by using Alt+Backtab. BackTab was already defined as shift+tab. Though, I'm not sure if there are any downsides to not making an additional key modifier for Alt+Shift as initially thought

Well spotted. Indeed, it should work both in SDL and DOM, on a quick look. Very fortunate and less code is less bugs.

And the commit looks good. May I suggest to use a Bool arguments also for the command constructors? E.g., MemberCycleBackwardLevel is quite a mouthful and IMHO MemberCycleLevel False is more readable. Or even MemberCycleLevel Backward if you'd like to define a type for that and then use it throughout (makes sense, but I'm usually too lazy to create such dedicated types). Unless you see any downside to adding the parameter.

Exactly, I felt a little unsure about messing with all the various files, so if this solution doesn't have any major downsides as it appears so far, I would much prefer it. I also considered making a type for the direction(forwards/backwards), but wasn't sure if it would be overkill. I think it may be good though, so I'll do that, or add the boolean parameter, because I agree the name was getting a little too complicated.

So I added a direction type, however I am still using a boolean in HandleHelperM.hs because I noticed this file didn't import anything from HumanCmd.hs, and I didn't want to add any imports that weren't already present. Maybe if I place the CycleDirection type somewhere else , it may be possible to use it everywhere, but for now, I put the CycleDirection type into HumanCmd.hs. Anyways for now the names are less verbose, and it is clearer what the boolean stood for because it is now its own type. Let me know if you have an improvement ideas

That looks better that I thought. I have to define such types more often. While doing git grep -i -30 " forward" I notice there is at least one more place where this type fits perfectly. And then here is another:
engine-src/Game/LambdaHack/Client/UI/HumanCmd.hs:  | EpsIncr Bool

Given that it's so universal, likely to be used elsewhere, and that it's currently used for commands, used in config, which is part of game content, I'd put it in Game.LambdaHack.Definition.Defs.

Perfect. Please merge.


chore: add java bindings code

This pulls in the code from beus-native.
I was not able to get the jna dependency to work, so for now I do it the "manual" way

A lot of the LOC in this is from the JSON files from the tests, these should not be here since they are tests on a particular block, but they are kept here since we don't want to change the API from besu-native

There are more internal changes that we can make, but I think these should wait for a later release. Most changes made in this were necessary, ie switching to 0.21.0


chore(website): fixed URL to react-instantsearch

Current generated link is https://community.algolia.com/instantsearch.jshttps://community.algolia.com/instantsearch.js/react/

thx


feat: support next.js out-of-the-box

Next.js is angry at styled components, and does not allow them. There are workarounds, but generally they still require users to put the styled components inside "use client" components.
A dear friend of ours, however, recommended a solution like this:
"use client"
import styled from 'styled-components'
import { Button as EdsButton } from '@equinor/eds-core-react'

export Button as styled(EdsButton)``

In their project, that worked well.
We experimented further with this, and found that this works just as well:
"use client"
export { Button } from '@equinor/eds-core-react'

Further experimentation found that we could also just do:
"use client"
export * from '@equinor/eds-core-react'

Which let us just import EDS components from this file instead of directly from @equinor/eds-core-react.
My theory here is that this PR will make the whole package work in all next projects, without any degradation to other react project support. After all, the "use client" string at the top of the file is just a string (to all other js libraries than next/remix).

Also, I could add an issue that the docs should add some documentation about how to use the library with next.js, as there might be more next.js projects upcoming.

Hm, looks like 'use-client' gets stripped away in the dist/esm/index.js file though when built

I see that rollup as a plugin for this: Ephem/rollup-plugin-preserve-directives, discovered here: https://github.com/rollup/rollup/issues/4699#issuecomment-1465302665 . Of course, adding a plugin to your rollup stack is something I suspect you may not take lightly.

this was instead resolved by #3703


Code chunks all have suffix 0x1 in dora

See https://dora.kaustinen-testnet.ethpandaops.io/slot/201180

Fixed after the rebase + decimal decoding PR


OpenXR: Make it possible to implement vendor extensions to hand tracking from GDExtension

There are a number of OpenXR vendor extensions for hand tracking that need to be able to add structures to the next pointer chain on the XrHandJointLocationEXT structure, including:

XR_FB_hand_tracking_aim
XR_FB_hand_tracking_capsule
XR_FB_hand_tracking_mesh

As vendor extensions, these should be implemented in godot_openxr_vendors via GDExtension, however, there isn't presently a way to add something to this particular next pointer chain from GDExtension.
This PR aims to fix that!
The API here is a little awkward, in that it adds a _set_hand_joint_locations_and_get_next_pointer() method to OpenXRExtensionWrapper, where hand tracking is itself implemented as an OpenXRExtensionWrapper. However, I'm not sure there's a way to do it that doesn't have worse downsides, especially for GDExtension. So, in my opinion, this is an acceptable awkwardness. :-)
Also, don't worry about having to loop over all the extension wrappers. That bit is only run when setting up each "hand tracker" for the first time. Once setup, it'll keep writing data to the structures we provide.
Anyway, please let me know what you think!

The API here is a little awkward, in that it adds a _set_hand_joint_locations_and_get_next_pointer() method to OpenXRExtensionWrapper, where hand tracking is itself implemented as an OpenXRExtensionWrapper. However, I'm not sure there's a way to do it that doesn't have worse downsides, especially for GDExtension. So, in my opinion, this is an acceptable awkwardness. :-)

Hand tracking is a core extension, so I don't see a big problem with this. The extension wrappers are so we can organise the code and not end up with a big blob of code in a single API class. I indeed can't think of a nicer way to do this.

Thanks!


[Feature]: Add the issue, bug, Pull request and feature template for contributors

This will help the maintainer keep the track of all the contributors.

Assign me @1010varun

done @1010varun https://github.com/1010varun/urlShortner/pull/20


"Consider using the development version of curatedMetagenomicData" when devel version is in use

When doing library(curatedMetagenomicData) in bioc-devel:
Consider using the development version of curatedMetagenomicData,
as the database has expanded considerably since the last release.
See tinyurl.com/datasets-included for further information.
> sessionInfo()
R version 3.4.0 Patched (2017-06-02 r72758)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Sierra 10.12.6

Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] parallel  stats     graphics  grDevices utils     datasets  methods   base

other attached packages:
[1] curatedMetagenomicData_1.7.7 ExperimentHub_1.3.0          AnnotationHub_2.9.5
[4] Biobase_2.37.2               BiocGenerics_0.23.0          dplyr_0.7.2

loaded via a namespace (and not attached):
 [1] Rcpp_0.12.12                  AnnotationDbi_1.39.2          bindr_0.1
 [4] magrittr_1.5                  IRanges_2.11.12               bit_1.1-12
 [7] xtable_1.8-2                  R6_2.2.2                      rlang_0.1.1
[10] blob_1.1.0                    httr_1.2.1                    tools_3.4.0
[13] DBI_0.7                       htmltools_0.3.6               yaml_2.1.14
[16] bit64_0.9-7                   assertthat_0.2.0              digest_0.6.12
[19] tibble_1.3.3                  interactiveDisplayBase_1.15.0 bindrcpp_0.2
[22] shiny_1.0.3                   tidyr_0.6.3                   S4Vectors_0.15.5
[25] mime_0.5                      memoise_1.1.0                 glue_1.1.1
[28] RSQLite_2.0                   BiocInstaller_1.27.4          compiler_3.4.0
[31] stats4_3.4.0                  httpuv_1.3.5                  pkgconfig_2.0.1
>

This message is there in Bioc 3.5 and is no longer necessary in Bioc 3.6. All versions display the correct message – closing the issue now.

I can't tell from the commit message what the correctly displayed messages
will be in 3.5 and 3.6 - 3.5 suggests devel and 3.6 says nothing?


fix acdc creation

fixes #7325, #7333 @amaltaro, Alan please review. (Still need to test)

test this please

It seems this patch causes the same problem caused by the resubmit.py client used by P&R team, some time ago.
It inherits basically all the parameters, however some of those are supposed to be set only during assignment (e.g. Trust* flags, MaxRSS, etc). So if CompOps don't provide the Trust flags, they would expect it to be False (default value), but it could be True if original workflow was assigned with this set to True.
Two ways to fix it in a short term:

expand the blacklist to include some of these keys (not all!):
https://github.com/dmwm/WMCore/blob/master/src/python/WMCore/ReqMgr/DataStructs/RequestStatus.py#L78
instead of a black list, make it a white list of what to inherit (a bit tricky for TaskChains)

Longer term: https://github.com/dmwm/WMCore/issues/7133


domain password logged

Hey guys,
When joining a domain, I've noticed that the credentials are logged if run at the debug level. Is there a way around this? The only way I know is to use sensitive, but that isn't usable as is.

Hello,
Can you provide your debug?


[Programs] Change label and icon from CommunityBridge to LFX

Current State of the Meshery.io site
Main page has this section:

Desired State of the Meshery.io site
Both the label and icon for the CommunityBridge button should be that of LFX.
lfx_reverse.svg.zip

Contributor Resources

See the Contributing to Meshery.io Website section of the readme.md.

Hi, I'd like to work on this.

Here you go @Meghana-12 🚀

Hey @Meghana-12 sorry for this, but looks like nikhil has solved this issue in a PR he sent a few ours ago. Why don't look for some other issues with the tag https://github.com/meshery/meshery.io/labels/help wanted . Apologies for the misunderstanding.

Should I change "CommunityBridge" to "LFX" ?

Oh! Sure, no problem!

Hey @leecalcote is this issue is open. If it is open pls assign to me.

Hey @aman-cpu there's already an existing PR for this, you might want to take a look at other issue which have the help wanted label.

@Meghana-12 Sorry for the miscommunication, but this still seems to be an issue, would you like to work on it.?

Yeah sure

Thanks @Meghana-12

I'm busy with another issue rn. So if anyone else is interested then feel free to assign it to them. Else I'll work on this once I complete that task.

Okay, @Meghana-12 no problem at all, thanks for letting us know😃.

Yes sure @aman-cpu you can work on this.😃

Thank you, Sir.

Current State of the Meshery.io site
Main page has this section:

Desired State of the Meshery.io site
Both the label and icon for the CommunityBridge button should be that of LFX.
lfx_reverse.svg.zip
Contributor Resources

See the Contributing to Meshery.io Website section of the readme.md.

hey @leecalcote I was working on this issue just wanted a confirmation
is it  the desired change and if you want me to change something else please let me know I will do the same

if you could provide me with a better icon or a larger icon then it will be easier for me.
thank you

@ANURAG-PATHAK remove the community bridge all together and make that solely LFX, and you could just add some css properties to make it bigger and better

@ANURAG-PATHAK remove the community bridge all together and make that solely LFX, and you could just add some css properties to make it bigger and better

okay

@warunicorn19
is it the desired change

no like it'll be just LFX that's it.

               which one is the preferred one top one or bottom one?

@leecalcote ^^^^

Looking good so far, @ANURAG-PATHAK. +1 to the bottom, but with the blue X made white. This can be done by editing the original SVG or by applying a CSS filter.

Looking good so far, @ANURAG-PATHAK. +1 to the bottom, but with the blue X made white. This can be done by editing the original SVG or by applying a CSS filter.

okay

is this one okay or should i change some thing else

@ANURAG-PATHAK I would've thought that we would just use a white version of the logo, since it has the name in the logo already, but there's a certain quality afforded to the buttons as a set when they are consistent in their presentation of logo+text. This looks good to me. ✔

@ANURAG-PATHAK I would've thought that we would just use a white version of the logo, since it has the name in the logo already, but there's a certain quality afforded to the buttons as a set when they are consistent in their presentation of logo+text. This looks good to me. ✔

should I make a PR with this one as final?
@leecalcote

issue fixed in the commit c06ce3ba37655ca57a37b36a03069465b06679c5 in PR #520


Accordion: two digit numbers in lists not showing

When we have long lists inside accordions, the numbers with two digits only display the second digit.

Examples:
https://iloorgstg.prod.acquia-sites.com/ines-green-jobs-portal
https://www-preview.ilo.org/node/644271/latest

Hey @inesdgomes quick question about this: this happens when you add a list to the Accordion using the RichText module in Drupal right?


Cannot browse to Plex albums or tracks, library sync completes with errors

What version of Music Assistant has the issue?
2.0.0b92
The problem
After adding Plex as a provider it begins to sync but in the log completes 'with errors'. On the main page of the Integration only Artists appear. Via browsing  I cannot browse to albums or tracks. There are errors in the logs about these. Browsing to Artists and Playlists works as expected. These errors prevent me being able to browse an artist's albums or tracks on their page.
How to reproduce
Add Plex as provider
Wait for sync.
Check logs, see error regarding sync
Attempt to browse to Albums, or Tracks
Check logs, see errors regarding browse
Relevant log output
Sync error:

2024-02-07 12:18:26.183 WARNING (MainThread) [music_assistant.music] Sync task for Plex Media Server Library completed with errors
Traceback (most recent call last):
File "/usr/local/lib/python3.11/site-packages/music_assistant/server/controllers/music.py", line 572, in run_sync
await provider.sync_library(media_types)
File "/usr/local/lib/python3.11/site-packages/music_assistant/server/models/music_provider.py", line 367, in sync_library
async for prov_item in self._get_library_gen(media_type):
File "/usr/local/lib/python3.11/site-packages/music_assistant/server/providers/plex/init.py", line 583, in get_library_albums
yield await self._parse_album(album)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/music_assistant/server/providers/plex/init.py", line 376, in _parse_album
self._get_item_mapping(
File "/usr/local/lib/python3.11/site-packages/music_assistant/server/providers/plex/init.py", line 261, in _get_item_mapping
return ItemMapping(
^^^^^^^^^^^^
File "", line 12, in init
File "/usr/local/lib/python3.11/site-packages/music_assistant/common/models/media_items.py", line 215, in post_init
self.sort_name = create_sort_name(self.name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/music_assistant/common/helpers/util.py", line 51, in create_sort_name
input_str = input_str.lower().strip()
^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'lower'

Browse error:

2024-02-07 12:22:47.956 ERROR (MainThread) [music_assistant.webserver] [139938156119056] Error handling message: CommandMessage(message_id=33, command='music/browse', args={'path': 'plex--9CtYeCnh://albums'})
Traceback (most recent call last):
File "/usr/local/lib/python3.11/site-packages/music_assistant/server/controllers/webserver.py", line 363, in _run_handler
async for item in result:
File "/usr/local/lib/python3.11/site-packages/music_assistant/server/controllers/music.py", line 282, in browse
async for item in prov.browse(path):
File "/usr/local/lib/python3.11/site-packages/music_assistant/server/models/music_provider.py", line 286, in browse
async for album in self.get_library_albums():
File "/usr/local/lib/python3.11/site-packages/music_assistant/server/providers/plex/init.py", line 583, in get_library_albums
yield await self._parse_album(album)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/music_assistant/server/providers/plex/init.py", line 376, in _parse_album
self._get_item_mapping(
File "/usr/local/lib/python3.11/site-packages/music_assistant/server/providers/plex/init.py", line 261, in _get_item_mapping
return ItemMapping(
^^^^^^^^^^^^
File "", line 12, in init
File "/usr/local/lib/python3.11/site-packages/music_assistant/common/models/media_items.py", line 215, in post_init
self.sort_name = create_sort_name(self.name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/music_assistant/common/helpers/util.py", line 51, in create_sort_name
input_str = input_str.lower().strip()
^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'lower'

Additional information
Screenshot of an artist page:

What version of Home Assistant Core are your running
2024.1.6
What type of installation are you running?
Home Assistant OS
On what type of hardware are you running?
Home Assistant OS virtualized in Proxmox VE

+1 on this one, still ocurring on current version
2024-03-27 16:52:23.347 INFO (MainThread) [music_assistant] Loaded music provider Plex Media Server Library
2024-03-27 16:52:25.234 WARNING (MainThread) [music_assistant.music] Sync task for Plex Media Server Library completed with errors
2024-03-27 16:52:25.658 ERROR (MainThread) [music_assistant] Error doing task: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/music_assistant/server/controllers/metadata.py", line 107, in scan_artist_metadata
await self.mass.music.artists.get(artist.item_id, artist.provider, lazy=False)
File "/usr/local/lib/python3.12/site-packages/music_assistant/server/controllers/media/base.py", line 210, in get
await add_task
File "/usr/local/lib/python3.12/site-packages/music_assistant/server/controllers/media/artists.py", line 71, in add_item_to_library
await self.mass.metadata.get_artist_metadata(item)
File "/usr/local/lib/python3.12/site-packages/music_assistant/server/controllers/metadata.py", line 119, in get_artist_metadata
artist.mbid = await self.get_artist_mbid(artist)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/music_assistant/server/controllers/metadata.py", line 239, in get_artist_mbid
ref_albums = await self.mass.music.artists.albums(artist.item_id, artist.provider)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/music_assistant/server/controllers/media/artists.py", line 200, in albums
return await self.get_provider_artist_albums(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/music_assistant/server/controllers/media/artists.py", line 321, in get_provider_artist_albums
items = await prov.get_artist_albums(item_id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/music_assistant/server/providers/plex/init.py", line 732, in get_artist_albums
albums.append(await self._parse_album(album_obj))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/music_assistant/server/providers/plex/init.py", line 429, in _parse_album
self._get_item_mapping(
File "/usr/local/lib/python3.12/site-packages/music_assistant/server/providers/plex/init.py", line 315, in _get_item_mapping
return ItemMapping(
^^^^^^^^^^^^
File "", line 12, in init
File "/usr/local/lib/python3.12/site-packages/music_assistant/common/models/media_items.py", line 236, in post_init
self.sort_name = create_sort_name(self.name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/music_assistant/common/helpers/util.py", line 51, in create_sort_name
input_str = input_str.lower().strip()

Looks like its receiving artists with no name (None/null) - if you have a look at your plex library, anything that stands out that might cause it ?
We'll add a few more guards in the code for this to happen but just that you know that is crashing because it received unexpected data.

Looks like its receiving artists with no name (None/null) - if you have a look at your plex library, anything that stands out that might cause it ?
We'll add a few more guards in the code for this to happen but just that you know that is crashing because it received unexpected data.

Turns out this was the case. 2 out of nearly 1000 artists. @marcelveldt thank you so much! Turns out I am not as adept at reading Python errors as I thought.


[M] DUP Facility-specific messaging in GARIBALDI - EMAILS

Description:
We need to create facility specific messaging in confirmation emails for GARIBALDI DUP bookings via GC Notify.
Acceptance Criteria:

[ ] Create new template for vehicle passes in Garibaldi as below
[ ] Confirmation emails for vehicle passes will all use the same template, for Garibaldi this will be used for Rubble Creek, Cheakamus and Diamondhead
[ ] Figma example: https://www.figma.com/design/2lQW8InOa0lEiUiMeGmeNC/Day-Use-Pass?node-id=5154-3532&t=HuJVGk7uHzK26w9h-1

Vehicle Pass text Template: https://bcgov.sharepoint.com/:w:/r/teams/031072/Shared Documents/[Product] Parking Services/DUP Reso Site Content/DUP Vehicle Email Template.docx?d=w8bedc27c325340c3ad478c9fbd5ccafb&csf=1&web=1&e=XxUx53
Development Checklist:

[ ] ...
[ ] ...
[ ] ...

Dependencies

Blocked by
Blocking

Relevant documentation as reference
Definition of Ready

[ ] Acceptance criteria are included
[ ] Wireframes are included (if applicable)
[ ] Design / Solution is accepted by Product Owner (if applicable)
[ ] Dependencies are identified (technical, business, regulatory/policy)
[ ] Story has been estimated (under 13 pts)

Definition of Done

In progress:

[ ] Acceptance criteria are tested (Functionality meets the acceptance criteria defined in the ticket)
[ ] UI meets accessibility requirements
[ ] Unit tests are written
[ ] Work is traceable in GitHub
[ ] PR linked to ticket number
[ ] If needed/required - Dev adds flag/label to highlight any migration steps necessary prior to PROD deployment

Code review:

[ ] Code is peer reviewed and has passed CI/CD tests

QA:

[ ] Acceptance criteria are tested (Functionality meets the acceptance criteria defined in the ticket)
[ ] Code is potentially shippable to the production environment
[ ] Functional features have been tested and passed by QA
[ ] UI components tested by designer
[ ] Code is deployed to PROD when moved to 'done' column (unless requested otherwise by PO)

PO Review:

[ ] Acceptance criteria are tested (Functionality meets the acceptance criteria defined in the ticket)
[ ] Reviewed and approved by Product Owner

Notes:

I have had a few conversations with @ndelraye about this ticket, and the best way to go about implementing it. In the end it sounds like the best path forward is to just update the existing template in GCnotify with the new information provided.
Following the acceptance criteria: Garibaldi this will be used for Rubble Creek, Cheakamus and Diamondhead
And the decision from @MarshallHenson:  "They (Parking confirmation emails) also have to be applicable to Golden Ear, so I made them all general"
The only new bit of dynamic information needed for the email is the #LeaveNoTrace link. But I cannot find a similar video for Golden Ears. If we are going to be sending the same video link for each park this ticket is ready for QA review. If there is more video links I will need a list of all them all to re-assess how to go about this.  Until that is decided I will move this ticket to blocked.

@meyerdarcie  flagging this blocker for you and possibly @ndelraye  from @Christopher-walsh22 :

The only new bit of dynamic information needed for the email is the #LeaveNoTrace link. But I cannot find a similar video for Golden Ears. If we are going to be sending the same video link for each park this ticket is ready for QA review. If there is more video links I will need a list of all them all to re-assess how to go about this. Until that is decided I will move this ticket to blocked.

@ndelraye see comment above re #leavenotrace link - are we sending the same video for each park?

Marshall made the vehicle email generic so it could be used for Golden ears as well as Garibaldi, but just realized the the leave no trace links are unique to each park. Marshall needs to decide what he would like to do, either remove this link, clarify the link is specific for Garibaldi or add in another one for Golden ears if there is one

@MarshallHenson - see comment above from Nicole - we're trying to work out a few last minute items for the Garibaldi emails. Are you ok with removing the leave no trace link?

Awesome! I have updated the template in TEST moving this to QA.

Tested on TEST: Pending
@Christopher-walsh22 few minor issue found.

The first paragraph starts with a underscore (refer to the image attached)

@manuji That is strange. I have about 20 of these confirmation emails without that appearing. I will look into it, are you viewing the email in outlook?

Outlook must have been removing that for me for some reason.
I have fixed the template and made the first paragraph italicized like the sample text shows.  Moving back to QA.

Tested on TEST: passed

This is good to go to PROD.
Passing to PO review.

@Christopher-walsh22 , let me know when you update the PROD email template, if users spare me one pass to book, I will verify the email. :)

Updated the Prod template! hopefully you can get a pass!

@Christopher-walsh22 , I am sorry I failed to recognize one mistake. Could you please update both TEST and PROD template to reflect this line to match with the Figma and the Word doc:
Issue:

Expected: Should read "Thank you. We hope you enjoy your visit!"

updated

Thank you so much! This change has been successfully done on PROD.

Moving to done.


Prepare ContactsController to support requirements

https://trello.com/c/8NN6jQiI/1025-modal-experience-for-contacts
Previously the insertion of a contact required the routes to be under a
document scope, which is no longer the case. This moves the routes for
contacts out of the document scope and adds an '-embed' suffix to be
consistent with the approach for YouTube videos.

Previously we re-used the 'contacts#index' action to re-render the page
and show the snippet to insert. This splits the 'index' action into
'new' and 'create' actions, again to be consistent with the approach for
video embeds. It would have been painful to try and support requirements
checking with the previous 'index' action.

This also changes the insertion mechanism to copy the approach we use for
video embeds, where, in addition to requirements stuff, the controller
responds with the snippet to insert. As a consequence, the autocomplete
no longer needs to have knowledge of the markdown template for contacts.

@alex-ju following a discussion with @kevindew, I've made some major changes to the way contacts work. I've updated the PR description to reflect this. Sorry for the continued upheaval!
Let me know if you need help understanding what's changed and/or why.


Removed any zero probability tokens from hover pop-up

Fixes #84
This just removes any that are zero, but could also remove any that round down to 0.00% like this:
${probs ? html`

        ${probs.map((prob, i) => {
            const probPercentage = (prob.prob * 100).toFixed(2);
            if (probPercentage === '0.00') return null;

            const index = currentPromptChunk?.index;
            const isCurrentToken = promptChunks[index]?.prob == prob.prob;
            return html`<button key=${i} className=${isCurrentToken ? 'current' : ''} onClick=${() => switchCompletion(index, prob)}>

${replaceUnprintableBytes(prob.tok_str)}

${probPercentage}%

            </button>`;
        }).filter(Boolean)}

` : null}

but if the samplers are set up to select an (extremely unlikely!) sub top-10 0.00005 probability token; it will look odd that the selected token isn't in the popup IMO... So decided against this.

Yes, that makes sense. Thank you for your contribution.


masked and rsv data is not currently supported

I'm getting the issue when connecting to the endpoint.
ERROR: Optional(Starscream.HTTPUpgradeError.notAnUpgrade(426)) ERROR: Optional(Starscream.WSError(type: Starscream.ErrorType.protocolError, message: "masked and rsv data is not currently supported", code: 1002))
Do you have any idea?

FYI, I tested connection and subscription in javascript and also I was able to connect using URLSession:
    let urlSession = URLSession(configuration: .default)
    let webSocketTask = urlSession.webSocketTask(with: URL(string: "wss://my-endpoint")!, protocols: ["wamp"])

    webSocketTask.receive { (result) in
        switch result {
        case .failure(let error):
            print("Error in receiving message: \(error)")
        case .success(let message):
            switch message {
            case .string(let text):
                print("Received text: \(text)")
            case .data(let data):
                print("Received data: \(data)")
            default:
                break
            }
        }
    }

    webSocketTask.send(.string("Hey socket!, what are you doing?")) { (error) in
        if let error = error {
            print("Error in sending message: \(error)")
        }
    }
    webSocketTask.resume()

What wamp router are you trying to connect to? I've only tested this with Crossbar since it's what I'm using on my current project.
The issue with Starscream that appears to manifest for a variety of reasons. websocket disconnected: masked and rsv data is not currently supported


wpsoffice-cn-365: init at <IP_ADDRESS>69

Description of changes
Introduce wpsoffice-cn-365, another WPS Office variant. It includes a bunch of features that has not included in wpsoffice-cn.
Website: https://365.wps.cn/home
Known issues

Integrated mode is not working. Switching to this window management mode will render wpsoffice-cn-365 not able to launch. Fixed.
Login status will not survive upon each launch. Fixed.
CEF based apps cannot use input methods (tested using fcitx5).  Possibly upstream issue. Caused by built-in libstdc++.so.6 not able to find libraries: libstdc++.so.6: version GLIBCXX_3.4.29' not found (required by /nix/store/xxxxx-fcitx5-with-addons-5.1.9/lib/gtk-3.0/3.0.0/immodules/im-fcitx5.so). Feel free to make pr if you find any solutions. Fixed.

Qt based apps (Writer, Table, Presentation, etc.) is not affected (when using QT_IM_MODULE=fcitx5. QT_IM_MODULE=wayland is not supported. QT_IM_MODULE=ibus is untested).

Notes

Will periodically read system info (even if you choose to disable cloud abilities in oem.ini), including (but possibly not limited to):

/usr/local/var/lib/dbus/machine-id (Not existed in NixOS)
/proc/sys/kernel/random/boot_id
/var/lib/dbus/machine-id (Not existed in NixOS)

Requires software activation.

misc-linux will write activation info into /opt/kingsoft. Make sure you give write permission to this path, otherwise activation will not work even if you have a legit license.
You cannot use a personal VIP account to activate wpsoffice-cn-365.
If you choose not to activate, then you must log in to use wpsoffice-cn-365 after the 30 days trial is over.

Screenshots

Currently, this pr is based upon https://github.com/NixOS/nixpkgs/pull/318500 and will be rebased once the prior one is merged. Merged.

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

It‘s better to add an separate package for wpsoffice-cn-365, it is too complicated to have three versions in the wps package at the same time

It‘s better to add an separate package for wpsoffice-cn-365, it is too complicated to have three versions in the wps package at the same time

For me, it is fine to keep wpsoffice-365 at the same package, as most of the changes (dependencies, binary patches, etc.) are expected to be shareable as the personal variant reaches 12 version.

Replaced by https://github.com/NixOS/nixpkgs/pull/329296


@sveltejs/package Allow disabling the default behavior of copying package.json to the output directory when packaging a Svelte library

Please don't delete this checklist! Before submitting the PR, please make sure you do the following:

[x] It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://github.com/sveltejs/rfcs
[x] This message body should clearly illustrate what problems it solves.
[x] Ideally, include a test that fails without this PR but passes with it.

This resolves #6824.
For context, I'm building a cross-framework component library so I've set up a standard package structure for each framework in my monorepo with npm workspaces.
I'm using Vite with @sveltejs/package to develop and build my components. However, @sveltejs/package breaks my toolchain because it creates a copy of package.json in my dist folder.
npm workspaces picks up both the original package.json and dist/package.json, causing other dependent packages to break due to the duplication.
This PR adds a copyPackageJson option to allow disabling the copy feature.
Tests

[x] Run the tests with pnpm test and lint the project with pnpm lint and pnpm check

All existing tests for @sveltejs/package pass and I added a test for the new config option.
Changesets

[x] If your PR makes a change that should be noted in one or more packages' changelogs, generate a changeset by running pnpm changeset and following the prompts. All changesets should be patch until SvelteKit 1.0

The package command also copied the readme and changelog. What about a more general solution like an array of files and folders to copy or a filter function?

Yes that could be a more general solution. I'm tempted to put this into files but that's currently used for project files only, not sure if that breaking change is worth it (especially since it's not easy to detect) and if that's even a good API.

I didn't notice the README or changelog because it wasn't affecting the monorepo, but perhaps a more general metadata field would be better?
We can make its API similar to files, except we make the distinction that files only relates to project code, while metadata refers to the extra things like README, package.json, and the changelog.

Closed this in favor of #6864.


Implemented 2 new algos

As promised, I implemented 2 new questions today

Please specify the issue number

#182

Lowercase s in Solution.py


Removed restangular from UserService

What does this PR (Pull Request) do?
Removes a dependency on Restangular from the "UserService"

[x] This PR partially addresses #3571

Which Traffic Control components are affected by this PR?

Traffic Portal

Traffic Portal dependencies are not individually documented, and so no documentation changes are necessary.
What is the best way to verify this PR?
No functionality should have changed (except that errors will now be logged instead of ignored in many cases), so the existing tests should all pass.
Jeremy: actually, the only way to truly verify that the functionality did not change is to:

run the UI tests (which is a very small subset of all TP functionality)
manually verify the functionality associated with ALL the services functions that changed just to be sure all is well.

The following criteria are ALL met by this PR

[x] This PR includes tests OR I have explained why tests are unnecessary
[x] I have explained why documentation is unnecessary
[x] This PR includes an update to CHANGELOG.md OR such an update is not necessary
[x] This PR includes any and all required license headers
[x] This PR does not include a database migration
[x] This PR DOES NOT FIX A SERIOUS SECURITY VULNERABILITY

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/3740/
Test PASSed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/3812/
Test PASSed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4027/
Test PASSed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4728/

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4759/

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4862/


[Bug]: shopify theme dev error in linux

Please confirm that you have:

[X] Searched existing issues to see if your issue is a duplicate. (If you’ve found a duplicate issue, feel free to add additional information in a comment on it.)
[X] Reproduced the issue in the latest CLI version.

In which of these areas are you experiencing a problem?
Theme
Expected behavior
Run the theme in development mode as expected
Actual behavior
Erroring out when running the command

Verbose output
2024-04-19T17:55:26.733Z: Running command theme dev
2024-04-19T17:55:26.786Z: Ensuring that the user is authenticated with the Theme API with the following scopes:
[]

2024-04-19T17:55:26.787Z: Ensuring that the user is authenticated with the Admin API with the following scopes for the store qrsy.myshopify.com:
[]

2024-04-19T17:55:26.787Z: Getting session store...
2024-04-19T17:55:26.791Z: Validating existing session against the scopes:
[
  "openid",
  "https://api.shopify.com/auth/shop.admin.graphql",
  "https://api.shopify.com/auth/shop.admin.themes",
  "https://api.shopify.com/auth/partners.collaborator-relationships.readonly",
  "https://api.shopify.com/auth/shop.storefront-renderer.devtools",
  "https://api.shopify.com/auth/partners.app.cli.access",
  "https://api.shopify.com/auth/destinations.readonly"
]
For applications:
{
  "adminApi": {
    "scopes": [],
    "storeFqdn": "qrsy.myshopify.com"
  }
}

2024-04-19T17:55:26.792Z: Sending Identity Introspection request to URL: https://accounts.shopify.com/oauth/introspection
2024-04-19T17:55:26.793Z: Sending POST request to URL https://accounts.shopify.com/oauth/introspection
With request headers:
 - User-Agent: Shopify CLI; v=3.59.0
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: linux
 - Content-Type: application/json

2024-04-19T17:55:27.813Z: Request to https://accounts.shopify.com/oauth/introspection completed in 1000 ms
With response headers:
 - cache-control: no-cache, no-store, private, must-revalidate, max-age=0
 - content-type: application/json; charset=utf-8
 - etag: W/"58ae7ebeb409563f5df41e5737cc2ef7"
 - x-request-id: 51db4758-13db-452a-a43f-7ca9b29de860-1713549326

2024-04-19T17:55:27.826Z: The identity token is valid: true
2024-04-19T17:55:27.828Z:
The validation of the token for application/identity completed with the following results:
- It's expired: false
- It's invalid in identity: false

2024-04-19T17:55:27.828Z: The current session is valid but needs refresh. Refreshing...
2024-04-19T17:55:27.832Z: Sending POST request to URL https://accounts.shopify.com/oauth/token?grant_type=refresh_token&access_token=atkn_CjQIyN6KsQYQ6JaLsQZSJggBEhDkXxXh0H9ECLk-eUrAEEtdGhD-2LEHDLNG0o-9SCBeZ3L7EkBcUlbDMP2Eokj3OkDC-OL8mcTVrIUCnHeHeprYQX_PwEAm6YNnylyIM7XrNoX3jg-mXeOifmLBNvDPWnbsjl0B&refresh_token=atkn_CiEIyN6KsQYQyPiosgaiARIKEP7YsQcMs0bSj71IIF5ncvsSQHYk2oFg6w4Z7KIDhQPodiPSBwBVkAfFLNZpOegFqCw9lBFMJin7sNCz7mUv2DPhpLT3VseCxeGwd5x_WtwUag0&client_id=fbdb2649-e327-4907-8f67-908d24cfd7e3
With request headers:
 - User-Agent: Shopify CLI; v=3.59.0
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: linux
 - Content-Type: application/json

2024-04-19T17:55:28.540Z: Request to https://accounts.shopify.com/oauth/token?grant_type=refresh_token&access_token=atkn_CjQIyN6KsQYQ6JaLsQZSJggBEhDkXxXh0H9ECLk-eUrAEEtdGhD-2LEHDLNG0o-9SCBeZ3L7EkBcUlbDMP2Eokj3OkDC-OL8mcTVrIUCnHeHeprYQX_PwEAm6YNnylyIM7XrNoX3jg-mXeOifmLBNvDPWnbsjl0B&refresh_token=atkn_CiEIyN6KsQYQyPiosgaiARIKEP7YsQcMs0bSj71IIF5ncvsSQHYk2oFg6w4Z7KIDhQPodiPSBwBVkAfFLNZpOegFqCw9lBFMJin7sNCz7mUv2DPhpLT3VseCxeGwd5x_WtwUag0&client_id=fbdb2649-e327-4907-8f67-908d24cfd7e3 completed in 703 ms
With response headers:
 - cache-control: no-cache, no-store, private, must-revalidate, max-age=0
 - content-type: application/json; charset=utf-8
 - etag: W/"c35a37df0cbd58323aeb09de33518c28"
 - x-request-id: 1c872220-ff84-4ea0-8538-331c589072d9-1713549327

2024-04-19T17:55:28.551Z: Sending POST request to URL https://accounts.shopify.com/oauth/token?grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Atoken-exchange&requested_token_type=urn%3Aietf%3Aparams%3Aoauth%3Atoken-type%3Aaccess_token&subject_token_type=urn%3Aietf%3Aparams%3Aoauth%3Atoken-type%3Aaccess_token&client_id=fbdb2649-e327-4907-8f67-908d24cfd7e3&audience=271e16d403dfa18082ffb3d197bd2b5f4479c3fc32736d69296829cbb28d41a6&scope=https%3A%2F%2Fapi.shopify.com%2Fauth%2Fpartners.app.cli.access&subject_token=****
With request headers:
 - User-Agent: Shopify CLI; v=3.59.0
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: linux
 - Content-Type: application/json

2024-04-19T17:55:28.552Z: Sending POST request to URL https://accounts.shopify.com/oauth/token?grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Atoken-exchange&requested_token_type=urn%3Aietf%3Aparams%3Aoauth%3Atoken-type%3Aaccess_token&subject_token_type=urn%3Aietf%3Aparams%3Aoauth%3Atoken-type%3Aaccess_token&client_id=fbdb2649-e327-4907-8f67-908d24cfd7e3&audience=ee139b3d-5861-4d45-b387-1bc3ada7811c&scope=https%3A%2F%2Fapi.shopify.com%2Fauth%2Fshop.storefront-renderer.devtools&subject_token=****
With request headers:
 - User-Agent: Shopify CLI; v=3.59.0
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: linux
 - Content-Type: application/json

2024-04-19T17:55:28.552Z: Sending POST request to URL https://accounts.shopify.com/oauth/token?grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Atoken-exchange&requested_token_type=urn%3Aietf%3Aparams%3Aoauth%3Atoken-type%3Aaccess_token&subject_token_type=urn%3Aietf%3Aparams%3Aoauth%3Atoken-type%3Aaccess_token&client_id=fbdb2649-e327-4907-8f67-908d24cfd7e3&audience=32ff8ee5-82b8-4d93-9f8a-c6997cefb7dc&scope=https%3A%2F%2Fapi.shopify.com%2Fauth%2Fdestinations.readonly&subject_token=****
With request headers:
 - User-Agent: Shopify CLI; v=3.59.0
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: linux
 - Content-Type: application/json

2024-04-19T17:55:28.553Z: Sending POST request to URL https://accounts.shopify.com/oauth/token?grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Atoken-exchange&requested_token_type=urn%3Aietf%3Aparams%3Aoauth%3Atoken-type%3Aaccess_token&subject_token_type=urn%3Aietf%3Aparams%3Aoauth%3Atoken-type%3Aaccess_token&client_id=fbdb2649-e327-4907-8f67-908d24cfd7e3&audience=7ee65a63608843c577db8b23c4d7316ea0a01bd2f7594f8a9c06ea668c1b775c&scope=https%3A%2F%2Fapi.shopify.com%2Fauth%2Fshop.admin.graphql+https%3A%2F%2Fapi.shopify.com%2Fauth%2Fshop.admin.themes+https%3A%2F%2Fapi.shopify.com%2Fauth%2Fpartners.collaborator-relationships.readonly&subject_token=****&destination=https%3A%2F%2Fqrsy.myshopify.com%2Fadmin
With request headers:
 - User-Agent: Shopify CLI; v=3.59.0
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: linux
 - Content-Type: application/json

2024-04-19T17:55:29.148Z: Request to https://accounts.shopify.com/oauth/token?grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Atoken-exchange&requested_token_type=urn%3Aietf%3Aparams%3Aoauth%3Atoken-type%3Aaccess_token&subject_token_type=urn%3Aietf%3Aparams%3Aoauth%3Atoken-type%3Aaccess_token&client_id=fbdb2649-e327-4907-8f67-908d24cfd7e3&audience=ee139b3d-5861-4d45-b387-1bc3ada7811c&scope=https%3A%2F%2Fapi.shopify.com%2Fauth%2Fshop.storefront-renderer.devtools&subject_token=**** completed in 586 ms
With response headers:
 - cache-control: no-cache, no-store, private, must-revalidate, max-age=0
 - content-type: application/json; charset=utf-8
 - etag: W/"ef62687a54267aeebaecd016ab6b4f49"
 - x-request-id: 4aa29d10-284e-4326-a729-75caa58deee2-1713549327

2024-04-19T17:55:29.156Z: Request to https://accounts.shopify.com/oauth/token?grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Atoken-exchange&requested_token_type=urn%3Aietf%3Aparams%3Aoauth%3Atoken-type%3Aaccess_token&subject_token_type=urn%3Aietf%3Aparams%3Aoauth%3Atoken-type%3Aaccess_token&client_id=fbdb2649-e327-4907-8f67-908d24cfd7e3&audience=271e16d403dfa18082ffb3d197bd2b5f4479c3fc32736d69296829cbb28d41a6&scope=https%3A%2F%2Fapi.shopify.com%2Fauth%2Fpartners.app.cli.access&subject_token=**** completed in 598 ms
With response headers:
 - cache-control: no-cache, no-store, private, must-revalidate, max-age=0
 - content-type: application/json; charset=utf-8
 - etag: W/"d05ea5cd6750e2f93e4363e8d6ef73ec"
 - x-request-id: bdbf69d8-4494-4be5-9e2d-3a3e01d941f3-1713549327

2024-04-19T17:55:29.163Z: Request to https://accounts.shopify.com/oauth/token?grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Atoken-exchange&requested_token_type=urn%3Aietf%3Aparams%3Aoauth%3Atoken-type%3Aaccess_token&subject_token_type=urn%3Aietf%3Aparams%3Aoauth%3Atoken-type%3Aaccess_token&client_id=fbdb2649-e327-4907-8f67-908d24cfd7e3&audience=7ee65a63608843c577db8b23c4d7316ea0a01bd2f7594f8a9c06ea668c1b775c&scope=https%3A%2F%2Fapi.shopify.com%2Fauth%2Fshop.admin.graphql+https%3A%2F%2Fapi.shopify.com%2Fauth%2Fshop.admin.themes+https%3A%2F%2Fapi.shopify.com%2Fauth%2Fpartners.collaborator-relationships.readonly&subject_token=****&destination=https%3A%2F%2Fqrsy.myshopify.com%2Fadmin completed in 594 ms
With response headers:
 - cache-control: no-cache, no-store, private, must-revalidate, max-age=0
 - content-type: application/json; charset=utf-8
 - etag: W/"9b93d30c4fa63743b14cebe6bad5b562"
 - x-request-id: 2857df27-c3da-4de4-8950-959fe70804a6-1713549327

2024-04-19T17:55:29.170Z: Request to https://accounts.shopify.com/oauth/token?grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Atoken-exchange&requested_token_type=urn%3Aietf%3Aparams%3Aoauth%3Atoken-type%3Aaccess_token&subject_token_type=urn%3Aietf%3Aparams%3Aoauth%3Atoken-type%3Aaccess_token&client_id=fbdb2649-e327-4907-8f67-908d24cfd7e3&audience=32ff8ee5-82b8-4d93-9f8a-c6997cefb7dc&scope=https%3A%2F%2Fapi.shopify.com%2Fauth%2Fdestinations.readonly&subject_token=**** completed in 605 ms
With response headers:
 - cache-control: no-cache, no-store, private, must-revalidate, max-age=0
 - content-type: application/json; charset=utf-8
 - etag: W/"d716320b263c96de3a3e7ef14c278f8a"
 - x-request-id: 8c56d00e-1a6c-45ea-ba3f-ae6f2146d74b-1713549327

2024-04-19T17:55:29.178Z: Setting session store...
2024-04-19T17:55:29.225Z: Ensuring that the user is authenticated with the Storefront API with the following scopes:
[]

2024-04-19T17:55:29.226Z: Getting session store...
2024-04-19T17:55:29.229Z: Validating existing session against the scopes:
[
  "openid",
  "https://api.shopify.com/auth/shop.admin.graphql",
  "https://api.shopify.com/auth/shop.admin.themes",
  "https://api.shopify.com/auth/partners.collaborator-relationships.readonly",
  "https://api.shopify.com/auth/shop.storefront-renderer.devtools",
  "https://api.shopify.com/auth/partners.app.cli.access",
  "https://api.shopify.com/auth/destinations.readonly"
]
For applications:
{
  "storefrontRendererApi": {
    "scopes": []
  }
}

2024-04-19T17:55:29.230Z: Sending Identity Introspection request to URL: https://accounts.shopify.com/oauth/introspection
2024-04-19T17:55:29.231Z: Sending POST request to URL https://accounts.shopify.com/oauth/introspection
With request headers:
 - User-Agent: Shopify CLI; v=3.59.0
 - Keep-Alive: timeout=30
 - Sec-CH-UA-PLATFORM: linux
 - Content-Type: application/json

2024-04-19T17:55:29.677Z: Request to https://accounts.shopify.com/oauth/introspection completed in 440 ms
With response headers:
 - cache-control: no-cache, no-store, private, must-revalidate, max-age=0
 - content-type: application/json; charset=utf-8
 - etag: W/"894a9ca13f00825cb96e8139f847eed6"
 - x-request-id: 4fc6230d-eb2a-4ddd-83f5-8f703e57a506-1713549328

2024-04-19T17:55:29.681Z: The identity token is valid: true
2024-04-19T17:55:29.681Z:
The validation of the token for application/identity completed with the following results:
- It's expired: false
- It's invalid in identity: false

2024-04-19T17:55:29.708Z:
Running system process:
  · Command: ruby -v
  · Working directory: /home/calmsekaam/qrsy

2024-04-19T17:55:29.755Z:
Running system process:
  · Command: bundle -v
  · Working directory: /home/calmsekaam/qrsy

2024-04-19T17:55:30.006Z: Reading the content of file at<EMAIL_ADDRESS>2024-04-19T17:55:30.010Z:
Running system process:
  · Command: bundle install
  · Working directory: /home/calmsekaam/.nvm/versions/node/v20.12.2/lib/node_modules/@shopify/cli/dist/assets/cli-ruby

2024-04-19T17:55:30.320Z:
Running system process:
  · Command: bundle exec ruby /home/calmsekaam/.nvm/versions/node/v20.12.2/lib/node_modules/@shopify/cli/dist/assets/cli-ruby/bin/shopify theme token --admin atkn_Cp8DCJDgirEGELCYi7EGYpADCAESEIJXhsH3_kzBoS6cjalZVk0aqAFodHRwczovL2FwaS5zaG9waWZ5LmNvbS9hdXRoL3BhcnRuZXJzLmNvbGxhYm9yYXRvci1yZWxhdGlvbnNoaXBzLnJlYWRvbmx5IGh0dHBzOi8vYXBpLnNob3BpZnkuY29tL2F1dGgvc2hvcC5hZG1pbi5ncmFwaHFsIGh0dHBzOi8vYXBpLnNob3BpZnkuY29tL2F1dGgvc2hvcC5hZG1pbi50aGVtZXMgDSinUzIQdrUaNHJ9T_6nlZvGplAMNjokODQyYWYzOWUtOTc1Ny00NTYyLTg2MGUtMTEwMmM3OWE0MDY3QgdBY2NvdW50ShCFnFoCCJ9GmbQF1ihO6xhDUlN7InN1YiI6ImZiZGIyNjQ5LWUzMjctNDkwNy04ZjY3LTkwOGQyNGNmZDdlMyIsImlzcyI6Imh0dHBzOi8vYWNjb3VudHMuc2hvcGlmeS5jb20ifWIQtZUACzjGQby1UFf4HzGEBGoQbbNz_Y4GSuemmf25aDmdehJARyBqKRRHUDY69pelrmki4tt6zAIuiexbdFuHoPc3OP3rnnfRod1W8qy7urnb6d_qnejTma02YFHNtcFWtKQ2DQ --sfr atkn_CqMCCJDgirEGELCYi7EGYpQCCAESEJmseVf7HkAZiJ3zm4ptSzAaPmh0dHBzOi8vYXBpLnNob3BpZnkuY29tL2F1dGgvc2hvcC5zdG9yZWZyb250LXJlbmRlcmVyLmRldnRvb2xzINhSKKdTOiQ4NDJhZjM5ZS05NzU3LTQ1NjItODYwZS0xMTAyYzc5YTQwNjdCB0FjY291bnRKEIWcWgIIn0aZtAXWKE7rGENSU3sic3ViIjoiZmJkYjI2NDktZTMyNy00OTA3LThmNjctOTA4ZDI0Y2ZkN2UzIiwiaXNzIjoiaHR0cHM6Ly9hY2NvdW50cy5zaG9waWZ5LmNvbSJ9YhC1lQALOMZBvLVQV_gfMYQEahBts3P9jgZK56aZ_bloOZ16EkCwLurUxdCmC8_JCuTpTx2Ep3xkTNRTV4c2gFLKmLGfCa8Uwrf5aqBKozI_vB0fnopL818YUID8fYzjgonowegC
  · Working directory: /home/calmsekaam/qrsy

2024-04-19T17:55:30.784Z: Getting development theme...
2024-04-19T17:55:31.266Z: Request to https://qrsy.myshopify.com/admin/api/unstable/themes.json completed in 479 ms
With response headers:
 - content-type: application/json; charset=utf-8
 - x-request-id: 86d82940-c3b0-448a-8d4b-503cb1432327-1713549330

╭─ error ────────────────────────────────────────────────────────────────────────────────────────────╮
│                                                                                │
│  Cannot read properties of undefined (reading 'toString')                                          │
│                                                                                │
│  To investigate the issue, examine this stack trace:                                               │
│    at create (home/calmsekaam/.nvm/versions/node/v20.12.2/lib/node_modules/@shopify/cli/dist/inde  │
│    x.js:195941)                                                                                │
│    at processTicksAndRejections (node:internal/process/task_queues:95)                             │
│    at findOrCreate (home/calmsekaam/.nvm/versions/node/v20.12.2/lib/node_modules/@shopify/cli/dis  │
│    t/index.js:195914)                                                                              │
│    at run<EMAIL_ADDRESS>│
│    s:204557)                                                                                │
│    at _run (home/calmsekaam/.nvm/versions/node/v20.12.2/lib/node_modules/@shopify/cli/dist/chunk-  │
│    3MMF34G4.js:212317)                                                                             │
│    at runCommand (home/calmsekaam/.nvm/versions/node/v20.12.2/lib/node_modules/@shopify/cli/dist/  │
│    chunk-3MMF34G4.js:210764)                                                                       │
│    at run (home/calmsekaam/.nvm/versions/node/v20.12.2/lib/node_modules/@shopify/cli/dist/chunk-3  │
│    MMF34G4.js:212426)                                                                              │
│    at async runCLI (home/calmsekaam/.nvm/versions/node/v20.12.2/lib/node_modules/@shopify/cli/dis  │
│    t/index.js:194855)                                                                              │
│    at async runShopifyCLI (home/calmsekaam/.nvm/versions/node/v20.12.2/lib/node_modules/@shopify/  │
│    cli/dist/index.js:207961)                                                                       │
│                                                                                │
╰────────────────────────────────────────────────────────────────────────────────────────────────────╯

2024-04-19T17:55:31.463Z:
Running system process:
  · Command: ruby -v
  · Working directory: /home/calmsekaam/qrsy

2024-04-19T17:55:31.836Z: Request to https://monorail-edge.shopifysvc.com/v1/produce completed in 362 ms
With response headers:
 - x-request-id: 9bf1e600-be79-469f-a114-171d0a849b46

2024-04-19T17:55:31.837Z: Analytics event sent: {
  "command": "theme dev",
  "time_start":<PHONE_NUMBER>734,
  "time_end":<PHONE_NUMBER>449,
  "total_time": 4715,
  "success": false,
  "cli_version": "3.59.0",
  "ruby_version": "3.0.2",
  "node_version": "20.12.2",
  "is_employee": false,
  "uname": "linux amd64",
  "env_ci": false,
  "env_plugin_installed_any_custom": false,
  "env_plugin_installed_shopify": "[\"@shopify/cli\"]",
  "env_shell": "zsh",
  "env_device_id": "bd1fd0a91cb4fef806c9134ee653cc717d87b3fe",
  "env_cloud": "localhost",
  "env_package_manager": "unknown",
  "env_is_global": true,
  "cmd_all_timing_network_ms": 3584,
  "cmd_all_timing_prompts_ms": 0,
  "cmd_all_launcher": "unknown",
  "cmd_all_topic": "theme",
  "cmd_all_plugin": "@shopify/cli",
  "cmd_all_force": false,
  "cmd_all_verbose": true,
  "cmd_all_path_override": true,
  "cmd_all_path_override_hash": "0683d3c7594870301c4fbba3e7cc5eaa659365e2",
  "cmd_all_timing_active_ms": 1130,
  "cmd_all_exit": "unexpected_error",
  "args": "--store qrsy --verbose",
  "error_message": "Cannot read properties of undefined (reading 'toString')",
  "env_plugin_installed_all": "[\"@shopify/cli\"]",
  "metadata": "{\"extraPublic\":{},\"extraSensitive\":{}}"
}
2024-04-19T17:55:31.844Z: Reporting unhandled error to Bugsnag: Cannot read properties of undefined (reading 'toString')
    TypeError: Cannot read properties of undefined (reading 'toString')

Reproduction steps

install latest version of cli
shopify theme dev --store=store-slug

Operating System
Windows 11
Shopify CLI version (check your project's package.json if you're not sure)
3.59.0
Shell
bash
Node version (run node -v if you're not sure)
v20.12.2
What language and version are you using in your application?
No response

I'm having the same problem today (macOS), I couldn't get the theme dev to work even though I installed it from both npm and homebrew.
 error ───────────────────────────────────────────────────────────────────────╮
│                                                                               │
│  Cannot read properties of undefined (reading 'toString')                     │
│                                                                               │
│  To investigate the issue, examine this stack trace:                          │
│    at create (usr/local/lib/node_modules/@shopify/cli/dist/index.js:195941)   │
│    at processTicksAndRejections (node:internal/process/task_queues:95)        │
│    at findOrCreate                                                            │
│    (usr/local/lib/node_modules/@shopify/cli/dist/index.js:195914)             │
│    at run (usr/local/lib/node_modules/@shopify/cli/dist/index.js:204557)      │
│    at _run                                                                    │
│    (usr/local/lib/node_modules/@shopify/cli/dist/chunk-3MMF34G4.js:212317)    │
│    at runCommand                                                              │
│    (usr/local/lib/node_modules/@shopify/cli/dist/chunk-3MMF34G4.js:210764)    │
│    at run                                                                     │
│    (usr/local/lib/node_modules/@shopify/cli/dist/chunk-3MMF34G4.js:212426)    │
│    at async runCLI                                                            │
│    (usr/local/lib/node_modules/@shopify/cli/dist/index.js:194855)             │
│    at async runShopifyCLI                                                     │
│    (usr/local/lib/node_modules/@shopify/cli/dist/index.js:207961)             │
│                                                                               │
╰───────────────────────────────────────────────────────────────────────────────╯

    TypeError: Cannot read properties of undefined (reading 'toString')

👋 hi folks, we'll be closing this issue since there hasn't been activity recently. however if you're still experiencing this problem please re open this issue with --verbose output of your console. thanks!


Server loses transactions (v1.2.6)

    val t1 = producer.newTransaction(NewTransactionProducerPolicy.ErrorIfOpened, 0)
    t1.send("data".getBytes())
    producer.checkpoint()

   val t2 = producer.newTransaction(NewTransactionProducerPolicy.ErrorIfOpened, 0)
    val l2 = new CountDownLatch(1)
    srv.notifyProducerTransactionCompleted(t => t.transactionID == t2.getTransactionID() && t.state == TransactionStates.Checkpointed, l2.countDown())
    t2.send("data".getBytes())
    producer.checkpoint()
    l2.await()

    c1.start()
    c1.getTransactionById(0, t1.getTransactionID()).isDefined shouldBe true

The test crashes sometimes (irregularly) on the last line, getTransactionByID is unable to get the transaction.

I can't reproduce it with 1.2.5.

Fixed by letting use initial, non concurrent commit log implementation.


Error while Compiling

Ubuntu 18.04 Java 11.0.3
running (as part of fetch_and_preprocess.sh)
javac -cp $CLASSPATH lib/*.java -Xlint:unchecked
lib/CollapseUnaryTransformer.java:17: error: error while writing CollapseUnaryTransform
er: /home/eduard_ergenzinger/treelstm.pytorch/lib/CollapseUnaryTransformer.class
public class CollapseUnaryTransformer implements TreeTransformer {
       ^
lib/ConstituencyParse.java:58: warning: [unchecked] unchecked call to PTBTokenizer(Read
er,LexedTokenFactory<T>,String) as a member of the raw type PTBTokenizer
      PTBTokenizer<Word> tokenizer = new PTBTokenizer(new StringReader(line), new WordT
okenFactory(), "");
                                     ^
  where T is a type-variable:
    T extends HasWord declared in class PTBTokenizer
lib/ConstituencyParse.java:58: warning: [unchecked] unchecked conversion
      PTBTokenizer<Word> tokenizer = new PTBTokenizer(new StringReader(line), new WordT
okenFactory(), "");
                                     ^
  required: PTBTokenizer<Word>
  found:    PTBTokenizer
lib/DependencyParse.java:57: warning: [unchecked] unchecked call to PTBTokenizer(Reader
,LexedTokenFactory<T>,String) as a member of the raw type PTBTokenizer
        PTBTokenizer<Word> tokenizer = new PTBTokenizer(
                                       ^
  where T is a type-variable:
    T extends HasWord declared in class PTBTokenizer
lib/DependencyParse.java:57: warning: [unchecked] unchecked conversion
        PTBTokenizer<Word> tokenizer = new PTBTokenizer(
                                       ^
  required: PTBTokenizer<Word>
  found:    PTBTokenizer
1 error
4 warnings

had you fixed this problem?
I met the same error.

had you fixed this problem? I met the same error.

have you solved this problem?


Error with dotenv

I'm trying som simple job with load env file.
import os
import logging
import times
import asyncdispatch
import schedules
import dotenv

when isMainModule:
  schedules:
    every(seconds = 5, id = "test"):
      echo("Run job")
      let env = initDotEnv()
      env.load()

Traceback:
nim c -r --threads:on src/test.nim                                                                                5.8s  Ср 13 янв 2021 11:49:08
Hint: used config file '/etc/nim/nim.cfg' [Conf]
Hint: used config file '/etc/nim/config.nims' [Conf]
..........................................
Call
  Ident "every"
  ExprEqExpr
    Ident "seconds"
    IntLit 5
  ExprEqExpr
    Ident "id"
    StrLit "test"
  StmtList
    Call
      Ident "echo"
      StrLit "Run job"
    LetSection
      IdentDefs
        Ident "env"
        Empty
        Call
          Ident "initDotEnv"
    Call
      DotExpr
        Ident "env"
        Ident "load"
/home/unikum/Projects/test/src/test.nim(1, 8) Warning: imported and not used: 'os' [UnusedImport]
/home/unikum/Projects/test/src/test.nim(2, 8) Warning: imported and not used: 'logging' [UnusedImport]
/home/unikum/Projects/test/src/test.nim(4, 8) Warning: imported and not used: 'asyncdispatch' [UnusedImport]
CC: stdlib_io.nim
CC: stdlib_system.nim
CC: stdlib_os.nim
CC: stdlib_logging.nim
CC: stdlib_streams.nim
CC: stdlib_lexbase.nim
CC: ../../../../../../.nimble/pkgs/dotenv-1.1.1/dotenv/private/envparser.nim
CC: ../../../../../../.nimble/pkgs/dotenv-1.1.1/dotenv.nim
CC: test.nim
Hint:  [Link]
Hint: 67072 lines; 2.084s; 94.645MiB peakmem; Debug build; proj: /home/unikum/Projects/test/src/test.nim; out: /home/unikum/Projects/test/src/test [SuccessX]
Hint: /home/unikum/Projects/test/src/test  [Exec]
Run job
Traceback (most recent call last)
/home/unikum/Projects/test/src/test.nim(9) test
/home/unikum/.nimble/pkgs/schedules-0.1.0/schedules.nim(226) serve
/usr/lib/nim/pure/asyncdispatch.nim(1930) runForever
/usr/lib/nim/pure/asyncdispatch.nim(1627) poll
/usr/lib/nim/pure/asyncdispatch.nim(1368) runOnce
/usr/lib/nim/pure/asyncdispatch.nim(208) processPendingCallbacks
/usr/lib/nim/pure/asyncmacro.nim(29) fireNimAsyncContinue
/home/unikum/.nimble/pkgs/schedules-0.1.0/schedules.nim(161) fireIter
/usr/lib/nim/pure/times.nim(1324) now
/usr/lib/nim/pure/times.nim(1318) local
/usr/lib/nim/pure/times.nim(1175) inZone
/usr/lib/nim/pure/times.nim(1147) zonedTimeFromTime
/usr/lib/nim/pure/times.nim(1248) localZonedTimeFromTime
/usr/lib/nim/pure/times.nim(1241) getLocalOffsetAndDst
SIGSEGV: Illegal storage access. (Attempt to read from nil?)
Error: execution of an external program failed: '/home/unikum/Projects/test/src/test '

I also try whith while + sleep and it work fine.

Seems something wrong with the dotenv:
import os
import logging
import times
import asyncdispatch
import schedules
import dotenv

when isMainModule:
  schedules:
    every(seconds = 5, id = "test"):
      echo("Run job")
      let env = initDotEnv()
      env.load()

Seems something wrong with the dotenv:
import os
import logging
import times
import asyncdispatch
import schedules
import dotenv

when isMainModule:
  schedules:
    every(seconds = 5, id = "test"):
      echo("Run job")
      let env = initDotEnv()
      env.load()

This seems a weird issue. I can reproduce it on my local but not sure what causes it at the moment.

This seems a weird issue. I can reproduce it on my local but not sure what causes it at the moment.

Thank for the quick reply. I tried to minimize the reproducible example.

Thank for the quick reply. I tried to minimize the reproducible example.

I've minimized the example to make it smaller:
import os
import times
import schedules

when isMainModule:
  schedules:
    every(seconds = 1, id = "test", throttle = 2):
      echo("Start job 'test'")
      putEnv("PGUSER", "TEST")
      echo("End job 'test'")

It's putEnv which triggered the error.
I suspect something changed internally in nim runtime after c-call c_putenv was called, which made the next c-call (c localtime call in this case) unavailable.
I'll try to gain more info.

I've minimized the example to make it smaller:
import os
import times
import schedules

when isMainModule:
  schedules:
    every(seconds = 1, id = "test", throttle = 2):
      echo("Start job 'test'")
      putEnv("PGUSER", "TEST")
      echo("End job 'test'")

It's putEnv which triggered the error.
I suspect something changed internally in nim runtime after c-call c_putenv was called, which made the next c-call (c localtime call in this case) unavailable.
I'll try to gain more info.

Seems is not possible to set environment variables from the child process or threads: https://stackoverflow.com/questions/3416638/set-environment-variables-in-c

Seems is not possible to set environment variables from the child process or threads: https://stackoverflow.com/questions/3416638/set-environment-variables-in-c

@artemklevtsov I think the quickest way to work around the issue to move dotenv block out of schedules. It still functions correctly under most circumstances.

@artemklevtsov I think the quickest way to work around the issue to move dotenv block out of schedules. It still functions correctly under most circumstances.

Thank you for the suggestion. I'll try today.

Thank you for the suggestion. I'll try today.

This works:
import os
import times
import schedules

when isMainModule:
  putEnv("PGUSER", "TEST")
  schedules:
    every(seconds = 1, id = "test", throttle = 2):
      echo("Start job 'test'")
      echo getEnv("PGUSER")
      echo("End job 'test'")

This works:
import os
import times
import schedules

when isMainModule:
  putEnv("PGUSER", "TEST")
  schedules:
    every(seconds = 1, id = "test", throttle = 2):
      echo("Start job 'test'")
      echo getEnv("PGUSER")
      echo("End job 'test'")


HTTP/2 HTTPHeaders.isKeepAlive

Expected behavior
HTTP/2 HTTPHeaders should have isKeepAlive = true.
Actual behavior
HTTPHeaders.isKeepAlive is false for an HTTP/2 request. The unspecified check looks for HTTP/1.1 specifically to default to true:
// HTTP 1.1 use keep-alive by default if not otherwise told.
return version.major == 1 && version.minor >= 1

I think this check might also want to return true if version.major == 2.
SwiftNIO version/commit hash
master

I...don't think I agree.
Ultimately this is the result of having done something a bit awkward, which is use the data types from SwiftNIO HTTP/1 as the translated data types in SwiftNIO HTTP/2. This means there are many parts of the underlying representation that don't make too much sense. Another example is the version number having a minor version: only HTTP/1 has minor versions, no other version does. Fundamentally, the types in NIOHTTP1 are intended more for high-performance utilisation by a strictly-HTTP/1 pipeline than as a general representation of HTTP semantics.
Ideally we'd take a step back and define some more general currency types, and then have converters for both HTTP/1 and HTTP/2 that convert to those types.
For HTTP/2 there are two ways you can think about keep-alive working. One model is that all requests are by-default keep-alive: the underlying connection will stay active when the request has completed. In that mental model, HTTP/2 is returning the wrong answer.
Another model is that all requests in HTTP/2 are not keep-alive. This is because the HTTP/2 stream (which you must be operating on to see this behaviour) does in fact close after a single request-response pair. This is experientially identical to a HTTP/1 request without keep-alive: when the request/response cycle is completed, the channel will be closed. The fact that there is an underlying channel that remains open is not really relevant to the per-stream pipeline.
Of course, the correct answer to the question "is this HTTP/2 request a keep-alive request" is actually 無. The answer you currently get (false) is not even wrong. Keep-alive is simply not a HTTP/2 concept. Even the Connection header that carries the keep-alive information is undefined in HTTP/2 (RFC 7540 § <IP_ADDRESS>). There is simply no intelligent answer to the question: as a result, true is not a better answer than false.
The actual purpose of the isKeepAlive property is to let you place appropriate response headers such that we do not encounter problems with framing. In a well-formed HTTP application, the only things that should be looking at this are things that explicitly concern themselves with HTTP/1 framing (e.g. HTTPServerPipelineHandler), or something that just wants to echo back the answer.
(Incidentally, I think we currently have a limitation in swift-nio-http2 that we don't strip the connection header and anything else hop-by-hop in the HTTP2ToHTTP1Codec. If that's an issue you're hitting, we should fix it there, rather than change this field.)

This makes a lot of sense, thank you for the detailed response. I agree that the correct solution here is version independent HTTP types.

Incidentally, I think we currently have a limitation in swift-nio-http2 that we don't strip the connection header and anything else hop-by-hop in the HTTP2ToHTTP1Codec

Yup, that's what I was hitting. I have some logic adds an appropriate Connection header to responses based on the isKeepAlive value:
res.headers.add(name: .connection, value: req.isKeepAlive ? "keep-alive" : "close")
let done = context.write(self.wrapOutboundOut(res))
if !req.isKeepAlive {
    _ = done.flatMap {
        return context.close()
    }
}

When running over HTTP/2, I was getting a NoSuchStream(id: 1) error which I discovered was due to curl closing the connection after discovering an invalid header.
For now, I'm just checking the major version before doing isKeepAlive checks.
switch req.version.major {
        case 2: // just write response
        default: // check isKeepAlive header
}

That's a solid workaround. Please also file a bug against swift-nio-http2 for not stripping those headers.

I've added an issue about HTTP/2 connection field headers here: https://github.com/apple/swift-nio-http2/issues/47.
Should we close this issue in favor of a more generic one regarding version independent HTTP types?

@tanner0101 I think yes