[TEVA-1996] Trigger sign in events for jobseekers

For performance/business analysis purposes, we need to stream sign in attempt events to BigQuery for jobseekers and publishers.
Jobseekers are identified by anonymised email identifier and publishers by anonymised publisher oid.
Errors are streamed for jobseeker failures, but errors are not streamed for publishers (failures generally occur in DSI - although with a small refactor we could distinguish between unauthorised for teaching vacancies and not allowed LA user failures)

Jira ticket URL
https://dfedigital.atlassian.net/browse/TEVA-1996
Changes in this PR

Trigger sign in events for jobseekers
Trigger sign in events for publishers

Review app deployed to https://teaching-vacancies-review-pr-2952.london.cloudapps.digital


Different Versions of GeekMagic Smart TV?

Correction: Filled out all details in config page, rebooted and screen is working
Had a working GeekMagic Mini TV working with the default firmware, flashed the latest .bin file you have built via the ESP web flasher. Had success flashing and I see the wifi hotspot called LEAFMINER but the screen is black. I have a feeling there are different versions using different screen drivers/protocols. What do you think?
My version is shown below.
Thanks.
(PS, love what you are doing - great work!)

Did you connect to leaf miner WiFi and fill all the data and press save?
Then try to unplug usb and plug it back and see if the screen starts working.
Let me know otherwise we can investigate it!

Good it works, I will try to improve the setup screen process, so it's more clear what to do next.


Dark Mode

Loving this project !
Are there any plans to support Dark Mode in UI ?
I think having dark mode will be a killer feature.
Thanks !

Hi! The overall theme is provided by tabler, which does support dark mode, so it shouldn't be too hard to do.
The first thing you can do is customize your own shell component locally. Create a shell.handlebars file in sqlpage/templates.
Copy the official shell, and switch to tabler's dark mode by adding the tabler-dark theme on the body.
If it works well, you can open a pull request here to add an option in the shell template for dark mode.

My mistake, it looks like it's not class="theme-dark", but data-bs-theme="dark"

@accforgithubtest , do you want to make the small PR ?
It could be as simple as adding
{{#if dark}}
   data-bs-theme="dark"
{{/if}}

to shell.handlebars

done :confetti_ball: :heavy_check_mark:
This will be in the next version.


Makefile: install_prerequisites doesn't install linters needed for gometalinter

gometalinter fails on my machine with:
env CGO_ENABLED=1 gometalinter.v2 ./...
WARNING: exec: "unconvert": executable file not found in $PATH
WARNING: exec: "gosimple": executable file not found in $PATH
WARNING: exec: "gocyclo": executable file not found in $PATH
WARNING: exec: "megacheck": executable file not found in $PATH
WARNING: exec: "goconst": executable file not found in $PATH
WARNING: exec: "varcheck": executable file not found in $PATH
WARNING: exec: "structcheck": executable file not found in $PATH
WARNING: exec: "lll": executable file not found in $PATH
WARNING: exec: "deadcode": executable file not found in $PATH
WARNING: exec: "unused": executable file not found in $PATH
WARNING: exec: "misspell": executable file not found in $PATH
Makefile:235: recipe for target 'gometalinter' failed
make: *** [gometalinter] Error 2

Assuming you have $GOPATH/bin in $PATH.
Are you testing on ppc64le by any change? If so, ppc64le support have been added by only in version 3:
https://github.com/alecthomas/gometalinter/releases/tag/v3.0.0
Could you please check if switching to gopkg.in/alecthomas/gometalinter.v3 helps?

Nope, this is on x86.
Anyway, turns out that for some reason gometalinter.v2 --install didn't do the right thing, now that I've re-run that it seems to have correctly fetched everything. Perhaps because I'd earlier tried installing gometalinter myself and symlinked gometalinter.v2 to a different gometalinter...
(relatedly, now that I have the linters working, I now appreciate the complaints about linter CPU and memory usage :/ )

Yeah, they consume lots of memory.  We are trying to switch to golangci-lint which consume less memory:
https://github.com/google/syzkaller/issues/977
But so far it consumes even memory memory:
https://github.com/golangci/golangci-lint/issues/509


⚡ License - Non-Manufactured Precious Metal Trading

⚡ The Non-Manufactured Precious Metal Trading License from the Dubai Multi Commodities Centre (DMCC) is a license granted to companies operating in the precious metals trading industry within the DMCC free zone in Dubai, United Arab Emirates.
⚒ DMCC is a government entity established in 2002 to promote and facilitate commodity trade in Dubai. It provides a range of services and infrastructure for businesses involved in various sectors, including precious metals trading. The Non-Manufactured Precious Metal Trading License specifically caters to companies that engage in trading activities related to precious metals such as gold, silver, platinum, and palladium, among others.
🧑💼 Obtaining this license enables companies to operate within the DMCC free zone, which offers a business-friendly environment with various benefits such as 100% foreign ownership, zero personal or corporate tax, modern infrastructure, and access to a wide range of support services.
🌠 To obtain the Non-Manufactured Precious Metal Trading License from DMCC, companies must meet certain requirements, which may include providing proof of financial stability, submitting a detailed business plan, demonstrating compliance with anti-money laundering regulations, and maintaining a physical presence within the DMCC free zone, among others. The specific requirements and procedures may vary, so it is advisable to consult with DMCC directly or engage with a business setup consultant to ensure accurate and up-to-date information.
Non-Manufactured Precious Metal Trading :
Non-manufactured metal trading refers to the buying, selling, and trading of precious metals, such as gold, silver, platinum, palladium, and other non-manufactured forms of metal. In this context, "non-manufactured" means that the metals are in their raw or unprocessed state, without any significant alteration or transformation.
Traders in non-manufactured metal typically deal with bullion, which refers to bars, coins, or ingots of precious metals that are valued primarily for their metal content rather than their aesthetic or collectible qualities. These traders may engage in wholesale or retail transactions, buying metal from suppliers or producers and selling it to customers or other businesses.
Non-manufactured metal trading can take place in various forms, including physical trading where the actual metal is bought and sold, or it can involve derivative trading such as futures contracts or options, where traders speculate on the price movements of the underlying metal without physically owning it.
The non-manufactured metal trading industry plays a significant role in global financial markets, serving as a means for investors, institutions, and individuals to store wealth, hedge against inflation, diversify investment portfolios, and participate in commodities trading. Precious metals are often seen as a store of value and a safe haven asset in times of economic uncertainty.

License Details :
License Number : 28659
Licensee : CITYSCAPE DIGITAL ESTATE - FZCO
Trade Name : CITYSCAPE DIGITAL ESTATE - FZCO
Legal Status : Freezone Company
Issue Date : 31-Mar-2023
Expire Date : 30-Mar-2024
Issuing Authority : Dubai Integrated Economic Zones Authority


feat: add disaster_recovery integration type

Adds disaster_recovery service integration type support
Turns service_integrations into type set, so the order doesn't matter for future types
Removes custom service_integrations on aiven_clickhouse schema
Improves documentation: mentions only supported integrations types for each service type
Adds integration types validation

tests


Default to mainnet.

Parse process arguments for testnet flag to enable use on testnet.
Fixes #1.

I can't test for the usual reasons but this looks good to me and I definitely agree with defaulting to mainnet.
OK


if highlights with "id" name exists, fails to download them cause "id" (as file) exists

if highlights with "id" name exists, fails to download them cause "id" (as file) exists #2070
instaloader --login=user --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/118.0b5" --abort-on=302,400,401,429,403  --fast-update  --highlights --stories --tagged nikipt/
instaloader 4.10, linux
Retrieving highlights "id" from profile nikipt
Traceback (most recent call last):
  File "/home/elias/.local/bin/instaloader", line 8, in <module>
    sys.exit(main())
  File "/home/elias/.local/lib/python3.10/site-packages/instaloader/__main__.py", line 470, in main
    _main(loader,
  File "/home/elias/.local/lib/python3.10/site-packages/instaloader/__main__.py", line 219, in _main
    instaloader.download_profiles(profiles,
  File "/home/elias/.local/lib/python3.10/site-packages/instaloader/instaloader.py", line 1478, in download_profiles
    self.download_highlights(profile, fast_update=fast_update, storyitem_filter=storyitem_filter)
  File "/home/elias/.local/lib/python3.10/site-packages/instaloader/instaloader.py", line 81, in call
    return func(instaloader, *args, **kwargs)
  File "/home/elias/.local/lib/python3.10/site-packages/instaloader/instaloader.py", line 971, in download_highlights
    self.download_highlight_cover(user_highlight, highlight_target)
  File "/home/elias/.local/lib/python3.10/site-packages/instaloader/instaloader.py", line 580, in download_highlight_cover
    self.download_title_pic(highlight.cover_url, target, 'cover', highlight.owner_profile)
  File "/home/elias/.local/lib/python3.10/site-packages/instaloader/instaloader.py", line 97, in call
    return func(instaloader, *args, **kwargs)
  File "/home/elias/.local/lib/python3.10/site-packages/instaloader/instaloader.py", line 540, in download_title_pic
    filename = self.__prepare_filename(filename_template, lambda: url) + ".jpg"
  File "/home/elias/.local/lib/python3.10/site-packages/instaloader/instaloader.py", line 673, in __prepare_filename
    os.makedirs(os.path.dirname(filename), exist_ok=True)
  File "/home/elias/miniconda3/lib/python3.10/os.py", line 225, in makedirs
    mkdir(name, mode)
FileExistsError: [Errno 17] File exists: 'nikipt/id'

in linux, you cant have a filename "id" and a folder named "id", so, maybe, "id" file may be renamed in something else if such conflicts are found?  (but how many people will have named highlights as "id"?
You may through a more specific warning on that maybe?


Stats exports: include summary stats

At the bottom of the exported CSV, add a single row with the following info:

Annotations, CSV: percent coverage of each label, taken over all the images in the export
Calcification rates: Calcification rate averaged over all the images in the export. As well as the export-wide contributions from each label, if the relevant optional columns are enabled.
Other export types: Not applicable (as far as I can think of)

I believe this has been requested a few times over the years for the Annotations CSV export, and our response was that people can compute the summary stats themselves with basic knowledge of Excel formulas. Which is true, but it's not too difficult for us to include it in the CSV, either - and part of the calcification-rate plans include displaying the latest summary stats somewhere on the source (#375), which means we want to compute said summary stats anyway.
Two possible methods of averaging:

Compute stats for each image and then average over all images.
Compute stats for each point-annotation and then average over all point-annotations.

If each image in the source has an equal number of points, and each image's annotation area covers roughly the same area of the benthic zone, then either 1 or 2 should be valid. If the source is set up differently, it's possible that one averaging method could be more valid than the other, but I'm not sure if any other source setups are common on CoralNet. So I suppose we just pick one method of averaging and go with it (and update the help text to clarify how it's done).

I think it would be nice to have the exported summary statistics for the mean, lower, and upper calcification rates so the confidence bounds are included in any summary calcification rates so that there's easy user access to the calcification rates and uncertainties for their project.

I didn't specify that clearly here, but you're right - mean, lower bound, and upper bound should be included in the summary. If there are columns for each of those 3 (as specified in #369), then the summary-stats row specified in this issue should be able to have numbers for all 3.

Done in #404 (calcification) and #405 (image covers).


test-branch/execute-job/wrong-commit-sha-on-pr/4b54a6ef-ab26-4ea4-bbee-088140fb29c3

PR for testing 6f073d0a3a94f9eeb1aa784c8419ceb844d9a1aa

/canonical/self-hosted-runners/run-workflows 931ad21dd9ace68aaa0a7d341e94de96ad93fa6b


bugfix: Fix type erasure when retrieving per-route filter config

Signed-off-by: Shriram Rajagopalan<EMAIL_ADDRESS>bugfix: Fix type-erasure when retrieving per-route filter config
Description:
I don't know where the type was getting lost, but dynamic_cast<>  in perFilterConfigTyped<> was always returning null, though the unit tests seemed to pass. Per-route fault filter did not work (@rodaine also had a similar issue in his buffer filter implementation). Making the RouteSpecificFilterConfig an abstract class seems to fix the issue.
Risk Level: Low
Testing: Manually tested with per-route fault filters. @rodaine has an open PR that uses per-route buffer filter settings in integration tests.

I'm sorry but this change doesn't make any sense to me. Some more investigation will need to be done to understand why this is not working. We use roughly the same pattern for thread local objects.

I believe the issue is you need to use dynamic_pointer_cast instead of dynamic_cast in all three of these places: https://github.com/rshriram/envoy/blob/7623f283e497c32035667d03a23736d699e96082/include/envoy/router/router.h#L285
See: https://github.com/envoyproxy/envoy/blob/master/include/envoy/thread_local/thread_local.h#L41
Try that first to see if it fixes it.

hmm nevermind last comment, you have already lost shared pointer by the time that you got here. Just for giggles, try change perFilterConfig to return a shared_ptr, then do dynamic_pointer_cast, just like thread local, and see if that works.

Hmm. From some quick research, I'm guessing this has to do with some kind of linking issues that show up with our static registration system. I'm guessing making the base class pure virtual somehow forces the linker to deal with this in a different way.
Just for shits and giggles can you try it exactly like the thread local stuff to see if it works? If not, can you add more comments on why the base class is pure virtual?

I am trying the shared pointer thing.. with regard to the pure virtual destructor, I tried a whole bunch of stuff. It seems that even with static_cast, I get a corrupted per-route object in the filter (thought dynamic had some issue).
Then I tried to force the compiler to infer type by making the base class abstract, and that seemed to do the trick.

Alright, so the shared pointer approach does not work either.
https://github.com/envoyproxy/envoy/compare/master...rshriram:alternate_fix?expand=1 for the shared pointer stuff which uses dynamic_pointer_cast as you suggested.
if you run the modified front-envoy example as follows:
nohup ./bazel-bin/source/exe/envoy-static -l debug -c examples/front-proxy/front-envoy.yaml >foo.out 2>&1 &
time curl -v localhost:8080/service/1
*   Trying <IP_ADDRESS>...
* Connected to localhost (<IP_ADDRESS>) port 8080 (#0)
> GET /service/1 HTTP/1.1
> Host: localhost:8080
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 403 Forbidden
< content-length: 18
< content-type: text/plain
< date: Mon, 30 Apr 2018 16:01:45 GMT
< server: envoy
<
* Connection #0 to host localhost left intact
fault filter abort
real	0m0.012s
user	0m0.004s
sys	0m0.000s

the 403 status is from global filter config. the expected behavior is a delay of 5s (per-route filter config).

Closing; this is fixed in #3120

closing in favor of #3120


Use libp2p 0.30 types

This should be done once we get https://github.com/ChainSafe/lodestar/pull/1820 in.
Need to feedback / support libp2p in case any types are missing.

duplicae to #2167


$watchCollection for nested objects not working

don't know whether the $watchcollection functionality is supposed to work in the first place for nested objects ... seems like it should
it("detects changes to nested objects", function() {
scope.counter = 0;
scope.obj = {
a: {
b: 1
}
};
scope.$watchCollection(
function(scope) {
return scope.obj;
},
function(newValue, oldValue, scope) {
scope.counter++;
}
);
scope.$digest();
expect(scope.counter).toBe(1);
scope.obj.a.b = 2;
scope.$digest();
expect(scope.counter).toBe(2);
scope.$digest();
expect(scope.counter).toBe(2);
});

$watchCollection does not work for nested objects, and is not designed to.
I recently contributed something that clarifies this to the Angular docs: https://docs.angularjs.org/guide/scope#scope-watch-depths

@teropa - great article. Thanks for sharing it.
But scope.$watch(expr, listener, true) doesn't seem to work (in Angular 1) for below code if objArray[0].listItems[0].name is changed:
var objArray = [
  {
    listItems: [{
      name: 'n1'
    }]
  }
]


Enabling seccomp profile for pod lead to higher CPU

What happened:
In the worker node running AL2 EKS AMI amazon-eks-node-1.24-v20230825 (containerd 1.6.19, runc 1.1.7, libseccomp 2.4.1), if I enable RuntimeDefault seccomp profile for a pod, it will consume higher CPU.
For example, if I install redis without seccomp profile, each replica takes minor 10m CPU when it's in empty load.
helm upgrade -i -n default redis oci://registry-1.docker.io/bitnamicharts/redis --set global.storageClass=ebs-sc --set replica.containerSecurityContext.seccompProfile=null

$ kubectl top po
NAME               CPU(cores)   MEMORY(bytes)
redis-master-0     89m          2Mi
redis-replicas-0   4m           2Mi
redis-replicas-1   7m           2Mi
redis-replicas-2   9m           2Mi

If I install redis with seccomp profile, each replica takes 10 times (about 100m) CPU when it's in empty load.
helm upgrade -i -n default redis oci://registry-1.docker.io/bitnamicharts/redis --set global.storageClass=ebs-sc

$ kubectl top po
NAME               CPU(cores)   MEMORY(bytes)
redis-master-0     102m         2Mi
redis-replicas-0   99m          2Mi
redis-replicas-1   92m          2Mi
redis-replicas-2   116m         2Mi

What you expected to happen:
CPU usage is the same even after enabling seccomp for pod.
How to reproduce it (as minimally and precisely as possible):
Steps as above.
Anything else we need to know?:
This is because of a known issue #153 in libseccomp.
It has been fixed in PR #156.
However, this fix is not in our libseccomp version 2.4.1.
Environment:

AWS Region: ap-northeast-1
Instance Type(s): c5.xlarge
EKS Platform version (use aws eks describe-cluster --name <name> --query cluster.platformVersion): eks.10
Kubernetes version (use aws eks describe-cluster --name <name> --query cluster.version): 1.24
AMI Version: 1.24-v20230825
Kernel (e.g. uname -a): Linux ip-172-31-72-112.ap-northeast-1.compute.internal 5.10.186-179.751.amzn2.x86_64 #1 SMP Tue Aug 1 20:51:38 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Release information (run cat /etc/eks/release on a node):

BASE_AMI_ID="ami-0f2b325398f933a81"
BUILD_TIME="Fri Aug 25 20:04:37 UTC 2023"
BUILD_KERNEL="5.10.186-179.751.amzn2.x86_64"
ARCH="x86_64"

I also have same issue with bitinami/redis version 17.14.0 or higher.
I try to replace usr/sbin/runc on eks worker node with runc 1.1.7's latest binary version from here.
The cpu usage down from 80m to 7m.
Hope this helps.

I’ll work with the Amazon Linux team to get runc updated. 👍

We're on runc 1.7.x, please let me know if this is still an issue.


fix deletions for secrets

Fixes: https://github.com/envoyproxy/gateway/issues/588
Signed-off-by: Arko Dasgupta<EMAIL_ADDRESS>

Codecov Report

Merging #611 (5db11a0) into main (4d722b2) will decrease coverage by 0.14%.
The diff coverage is 18.18%.

@@            Coverage Diff             @@
##             main     #611      +/-   ##
==========================================
- Coverage   60.61%   60.47%   -0.15%
==========================================
  Files          47       47
  Lines        5721     5731      +10
==========================================
- Hits         3468     3466       -2
- Misses       2034     2044      +10
- Partials      219      221       +2

Impacted Files
Coverage Δ

internal/provider/kubernetes/gateway.go
50.85% <18.18%> (-0.90%)
:arrow_down:

internal/provider/kubernetes/gatewayclass.go
73.18% <0.00%> (-2.18%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

apiVersion: v1
items:
- apiVersion: gateway.networking.k8s.io/v1beta1
  kind: Gateway
  metadata:
    annotations:
      kubectl.kubernetes.io/last-applied-configuration: |
        {"apiVersion":"gateway.networking.k8s.io/v1beta1","kind":"Gateway","metadata":{"annotations":{},"name":"eg","namespace":"default"},"spec":{"gatewayClassName":"eg","listeners":[{"name":"https","port":8080,"protocol":"HTTPS","tls":{"certificateRefs":[{"group":"","kind":"Secret","name":"example-cert"}],"mode":"Terminate"}}]}}
    creationTimestamp: "2022-10-19T07:00:53Z"
    generation: 1
    name: eg
    namespace: default
    resourceVersion: "2076"
    uid: 59851661-7551-4d81-98bc-5c3cb3b01461
  spec:
    gatewayClassName: eg
    listeners:
    - allowedRoutes:
        namespaces:
          from: Same
      name: https
      port: 8080
      protocol: HTTPS
      tls:
        certificateRefs:
        - group: ""
          kind: Secret
          name: example-cert
        mode: Terminate
  status:
    addresses:
    - type: IPAddress
      value: <IP_ADDRESS>
    - type: Hostname
      value: localhost
    conditions:
    - lastTransitionTime: "2022-10-19T07:00:53Z"
      message: The Gateway has been scheduled by Envoy Gateway
      observedGeneration: 1
      reason: Scheduled
      status: "True"
      type: Scheduled
    - lastTransitionTime: "2022-10-19T07:00:54Z"
      message: Address assigned to the Gateway, 1/1 envoy Deployment replicas available
      observedGeneration: 1
      reason: Ready
      status: "True"
      type: Ready
    listeners:
    - attachedRoutes: 1
      conditions:
      - lastTransitionTime: "2022-10-19T07:00:53Z"
        message: Listener is ready
        observedGeneration: 1
        reason: Ready
        status: "True"
        type: Ready
      name: https
      supportedKinds:
      - group: gateway.networking.k8s.io
        kind: HTTPRoute
kind: List
metadata:
  resourceVersion: ""

🐳 ~/go-workspace/src/github.com/envoyproxy/gateway$ kubectl delete secret example-cert
secret "example-cert" deleted
🐳 ~/go-workspace/src/github.com/envoyproxy/gateway$ kubectl get gateway -A -o yaml
apiVersion: v1
items:
- apiVersion: gateway.networking.k8s.io/v1beta1
  kind: Gateway
  metadata:
    annotations:
      kubectl.kubernetes.io/last-applied-configuration: |
        {"apiVersion":"gateway.networking.k8s.io/v1beta1","kind":"Gateway","metadata":{"annotations":{},"name":"eg","namespace":"default"},"spec":{"gatewayClassName":"eg","listeners":[{"name":"https","port":8080,"protocol":"HTTPS","tls":{"certificateRefs":[{"group":"","kind":"Secret","name":"example-cert"}],"mode":"Terminate"}}]}}
    creationTimestamp: "2022-10-19T07:00:53Z"
    generation: 1
    name: eg
    namespace: default
    resourceVersion: "2320"
    uid: 59851661-7551-4d81-98bc-5c3cb3b01461
  spec:
    gatewayClassName: eg
    listeners:
    - allowedRoutes:
        namespaces:
          from: Same
      name: https
      port: 8080
      protocol: HTTPS
      tls:
        certificateRefs:
        - group: ""
          kind: Secret
          name: example-cert
        mode: Terminate
  status:
    addresses:
    - type: IPAddress
      value: <IP_ADDRESS>
    - type: Hostname
      value: localhost
    conditions:
    - lastTransitionTime: "2022-10-19T07:00:53Z"
      message: The Gateway has been scheduled by Envoy Gateway
      observedGeneration: 1
      reason: Scheduled
      status: "True"
      type: Scheduled
    - lastTransitionTime: "2022-10-19T07:04:02Z"
      message: Deployment replicas unavailable
      observedGeneration: 1
      reason: NoResources
      status: "False"
      type: Ready
    listeners:
    - attachedRoutes: 0
      conditions:
      - lastTransitionTime: "2022-10-19T07:04:02Z"
        message: Secret default/example-cert does not exist.
        observedGeneration: 1
        reason: InvalidCertificateRef
        status: "False"
        type: ResolvedRefs
      - lastTransitionTime: "2022-10-19T07:04:02Z"
        message: Listener is invalid, see other Conditions for details.
        observedGeneration: 1
        reason: Invalid
        status: "False"
        type: Ready
      name: https
      supportedKinds:
      - group: gateway.networking.k8s.io
        kind: HTTPRoute
kind: List
metadata:
  resourceVersion: ""


Ability to have root urls instead of urls with path

Hybrid Connections do not allow root paths i.e. https://xyz.servicebus.windows.net instead the urls will always have paths in them (e.g. https://xyz.servicebus.windows.net/mymachinename). While this works well for non-view webservers, applications which serve CSS or JS files can sometimes trip because of this and instead of hitting https://xyz.servicebus.windows.net/mymachinename/myjs.js hit https://xyz.servicebus.windows.net/myjs.js. This is primarily due to the way webservers are written with assumption that they will be running at root.
One possibility to solve this would be running a FrontDoor resource in Azure which can translate from FrontDoor root url -> Hybrid Connection path based url.
Opening this issue to consider other such avenues.

I just achieved this with a function proxy - little less fuss than front door perhaps -
{
    "$schema": "http://json.schemastore.org/proxies",
    "proxies": {
        "Teams": {
            "matchCondition": {
                "route": "/{*restOfPath}"
            },
            "backendUri": "https://my-namespace.servicebus.windows.net/my-path/{restOfPath}"
        }
    }
}

Working nicely so far - thanks for this repo!

@RamjotSingh Has there been any update on this front? I'm working on a Teams app and we've hit this limitation using Create React App. There were a few folks who took a look at modifying our app to be compatible loaded as a a path, since this has side benefits such as being able to deploy our PRs to Blob Storage for automatic PR previews. But turns out this approach was a little more difficult than seems necessary.
Any idea if there is another team doing something similar I could reach out to?

@RamjotSingh Has there been any update on this front? I'm working on a Teams app and we've hit this limitation using Create React App. There were a few folks who took a look at modifying our app to be compatible loaded as a a path, since this has side benefits such as being able to deploy our PRs to Blob Storage for automatic PR previews. But turns out this approach was a little more difficult than seems necessary.
Any idea if there is another team doing something similar I could reach out to?

I can give u a workaround. You can create a FrontDoor resource in azure and have that point to the relay. FrontDoor has ability to change outgoing urls. Which will allow you to do this.
I did not work on it, since their wasn't a lot of ask.

As far as I can see this problem can be solved by using either a Function-Proxy or a Frontdoor. Whereas the frontdoor-solution might be the more expensive one, while providing more features such as WAF.
Does one of them have any negative impacts I should consider?

Frontdoor is in general simpler, is closer to clients so tends to give better performance. However not a ton of difference in any url front you choose, atleast not for development purposes.


Debug error on multiple root folder project

Issue Type: Bug
The error started after updating to v1.47.0 and disappeared when rverted back to v1.46.x.
I have a multiple root folder project that is configured to use the debug function. After upgrading to 1.47.0 I encountered the following problems:

The debug is attached unwillingly when calling tsc --build for example.
When clicking the debug button, an error window message appears with "${workspaceFolder) can not be resolved in a multi folder workspace. Scope this variable usin ':' and a workspace folder name" although it is scoped properly.
Thanks

VS Code version: Code 1.47.0 (d5e9aa0227e057a60c82568bf31c04730dc15dcd, 2020-07-09T08:02:06.629Z)
OS version: Windows_NT x64 10.0.18363

Thanks for the issue

The debug is attached unwillingly when calling tsc --build for example.

This will be fixed in the recovery release which will add (and set a default) to only attach to node programs started with --inspect, see https://github.com/microsoft/vscode-js-debug/commit/6932b620d6d5ea697a1a1cd00f5bdb07b9167ee6

When clicking the debug button, an error window message appears with "${workspaceFolder) can not be resolved in a multi folder workspace. Scope this variable usin ':' and a workspace folder name" although it is scoped properly.

Can you please share your launch configuration?
In the meantime you can use the old debugger by setting debug.javascript.usePreview: false in your user configuration

Attaching the launch part of the workspace file:
`"launch": {
"configurations": [
{
"type": "pwa-node",
"request": "launch",
"name": "Debug Tests",
"program"<EMAIL_ADDRESS>"cwd": "${workspaceFolder:...}/..",
"console": "integratedTerminal",
"args": [
"${workspaceFolder:configs}/wdio.per.loc.stg.ui.conf.js"
],
                                       "skipFiles": [
                                                      "${workspaceFolder:...}/out/**/*.js"
                                       ]
                         }
                         ],
                         "compounds": []
          }

`

Thank tzurp. Unfortunately I'm having a hard time getting this to reproduce on my machine with the configuration you provided.
This was my workspace configuration -- using the node "demos" folder and then another empty folder:
{
	"folders": [
		{
			"path": "C:\\Users\\Connor\\Downloads\\foo"
		},
		{
			"path": "C:\\Users\\Connor\\Documents\\Github\\vscode-js-debug\\demos\\node"
		}
	],
	"launch": {
		"configurations": [
			{
				"type": "pwa-node",
				"request": "launch",
				"name": "Debug Tests",
				"program": "${workspaceFolder:node}/main.js",
				"cwd": "${workspaceFolder:node}/..",
				"console": "integratedTerminal",
				"args": [
					"${workspaceFolder:node}/wdio.per.loc.stg.ui.conf.js"
				],
				"skipFiles": [
					"${workspaceFolder:node}/out/**/*.js"
				]
			}
		],
		"compounds": []
	},
	"settings": {}
}

This worked running on VS Code 1.47.2.
Please make sure you're up to date with js-debug (the latest is version 1.47.5). If you previously installed the nightly, make sure that's up to date as well (the latest is 2020.7.1611). If you're still having trouble it'd be very helpful if you can create a small example/repo where this problem occurs.

Also having this issue and cannot launch my existing debug configurations anymore.
I created a simple test setup to reproduce this issue and it looks as follows:
C:\Users\xx\Desktop\test

workspace.code-workspace
main

index.js

utils

I inserted the  full workspace definition below. As you can see there is no reference to ${workspaceFolder} anymore, I just inserted the full path. I also tried the following paths always with the same error message:

${file}  (as was autogenerated by launch config generator)
${workspaceFolder:main}\\index.js

When just opening the main folder with VSCode (as single folder workspace) and generating a debug configuration, everything works fine.
test\workspace.code-workspace:
{
	"folders": [
		{
			"path": "main"
		},
		{
			"path": "utils"
		}
	],
	"settings": {},
	"launch": {
		"version": "0.2.0",
		"configurations": [
			{
				"type": "node",
				"request": "launch",
				"name": "Launch Program",
				"skipFiles": [
					"<node_internals>/**"
				],
				"program": "C:\\Users\\xx\\Desktop\\test\\main\\index.js"
			}
		]
	}
}

Hope this additional info helps with reproducing the issue.
I also disabled all extensions except for ms-vscode.js-debug (installed version is 1.47.5) for this workspace.
VSCode version dump:
Version: 1.47.2 (system setup)
Commit: 17299e413d5590b14ab0340ea477cdd86ff13daf
Date: 2020-07-15T18:22:06.216Z
Electron: 7.3.2
Chrome: 78.0.3904.130
Node.js: 12.8.1
V8: 7.8.279.23-electron.0
OS: Windows_NT x64 10.0.18363

@lSoleyl try setting your type to pwa-node

Thanks. I don't quite understand why this fixed it, but it now works. Is "type":"node" deprecated or does it simply not support multi folder workspaces anymore?

type: node has its config resolved using the old debuggers and then redirects the debug request to the new debugger. With type: pwa-node, the config is resolved by the new debugger directly, which is able to fill out the options that the old debugger doesn't know about.


feat: handle error if api does not exist

What/Why/How?
Add error handle in cases if definition does not exist. Previously cli throw native error

Also there was and issue if root of apis provided as link. See #849 and #850
Reference
Closes #849, #850
Testing
Screenshots (optional)
Example with run redocly lint resources/pets.yaml not-exist.yaml

Check yourself

[ ] Code is linted
[ ] Tested with redoc/reference-docs/workflows
[ ] All new/updated code is covered with tests

Security

[ ] Security impact of change has been considered
[ ] Code follows company security practices and guidelines

Please check if the logic covers the extends functionality: https://redocly.com/docs/cli/configuration/#extends-list

And check it covers the plugins paths too.

And check it covers the plugins paths too.
Please check if the logic covers the extends functionality: https://redocly.com/docs/cli/configuration/#extends-list

This check do not handle both of those cases. It not hard so to add such check, but it depends if we want to proceed in cases if plugin or config does not exist. I think we should proceed with same behaviour as it is work now ( Throw error and stop executing but with more efficient error)
cc @adamaltman @tatomyr

I believe we should also cover plugins and extends. To me there's sense to proceed with a config which is trying to extend from non-existing config or a plugin. I believe we should add errors for those cases as well.

Yes, with a friendly error message.


Autocomplete: for e.g. Assignable field keep parse status as 'Incomplete' until there is a symbol match

Not sure what was the intent here. Symbol completion now working reasonably well.


use hb_mc_idx_t instead of uint8_t for tile coordinates

https://github.com/bespoke-silicon-group/bsg_f1/blob/12617602a16b781418463f639d31abeb1adae9a0/cl_manycore/libraries/bsg_manycore_cuda.cpp#L40
(Unless these methods are deprecated)

The method is deprecated, I forgot to add a tag to it. Thanks for pointing it out! I will remove the function in a separate PR that removes all deprecated functions.

OK, is issue #267 still relevant then?
What about hb_mc_device_wait_for_tile_group_finish_any? It uses uint8_t's

Addressed in PR #275 .


zone2global (or possibly go-junos) doesn't work against vSRX

./zone2global -srx <IP_ADDRESS> -u admin -p admin123
This device doesn't look to be an SRX (FIREFLY-PERIMETER). You can only run this script against an SRX.

Tested against vSRX/Firefly 12.1X47-D20.7

Thanks for catching this. I'll make the adjustments and release an update later today.

Fixed the issue. Updated the go-junos library to reflect the vSRX. I tested this against 12.1X47-D20.7 and 15.1X49-D15.4


Add vault v2 support

This PR is to add support for Vault engine v2 secrets. It also adds support for using your own configured key to the secret in Vault.
Example of using the new config style:
kind: SwitchConfig
version: v1alpha1
refreshIndexAfter: 12h
kubeconfigStores:
- kind: vault
  showPrefix: false
  paths:
  - "shared/all/kubernetes"
  config:
    vaultAPIAddress: "https://vault.foo.bar"
    vaultKeyKubeconfig: "kubeconfig"
    vaultEngineVersion: "v2"
  cache:
    kind: filesystem
    config:
      path: ~/.kube/cache/switch

Besides that it also addresses a few other things:

If using cache and the folder does not exist, then create it
Upgrade to golang 1.20
Upgrade modules

Thank you very much, I'll have a look early next week!


NFS Dev Preview : Allow volume expansion for NFS & deploy a NFS volumesnapshot class

Refers- RHSTOR-3435
For the NFS Dev preview, we are enabling volume expansion for NFS & deploying a default NFS volume snapshot class.

/assign @Rakshith-R

/hold
Still needs changes in rook,
@malayparida2000 this needs to be tested after rook has the changes.
Both upgrade and nfs pvc expansion/snap creation/ restoring to pvc.

Yeah, @Rakshith-R , lets keep this on hold till the changes are done on rook side. No hurries.

/hold cancel

It would be nice to see an example of the newly generated class. Can that be shared?

@malayparida2000 ^

It would be nice to see an example of the newly generated class. Can that be shared?

@malayparida2000 ^

Are the required PRs now merged? And which version of rook or ceph-csi we need for testing?

The required PRs are now merged,
I have completely tested the changes and noted down the changes in this doc
@nixpanic
Here is how the newly created volumesnapshotclass looks
`oc get volumesnapshotclass | grep nfs
ocs-storagecluster-nfsplugin-snapclass      openshift-storage.nfs.csi.ceph.com      Delete           5m27s
oc get volumesnapshotclass ocs-storagecluster-nfsplugin-snapclass -o yaml
apiVersion: snapshot.storage.k8s.io/v1
deletionPolicy: Delete
driver: openshift-storage.nfs.csi.ceph.com
kind: VolumeSnapshotClass
metadata:
creationTimestamp: "2022-09-09T21:03:58Z"
generation: 1
name: ocs-storagecluster-nfsplugin-snapclass
resourceVersion: "304091"
uid: fef04841-3504-4b30-888e-c4f3d8adc595
parameters:
clusterID: openshift-storage
csi.storage.k8s.io/snapshotter-secret-name: rook-csi-cephfs-provisioner
csi.storage.k8s.io/snapshotter-secret-namespace: openshift-storage`
IMO this is good to merge now

/cc @BlaineEXE

LGTM, but I'll let @nixpanic approve since he had some prior comments.

/lgtm


Demonstrate dynamic form building

https://github.com/angular-ui-form/validation/issues/27

Do you have any demos or examples on validations for formly or dynamically generated forms?
Thanks


Bug when using custom serializers

Running Djoser 1.3.0 on Django 2.1.1
I can successfully create and use one custom serializer like so:
# users/serializers.py
class CustomUserCreateSerializer(UserCreateSerializer):
    class Meta:
        fields = tuple(User.REQUIRED_FIELDS) + (
            User.USERNAME_FIELD, User._meta.pk.name, 'password',
            'is_manager',
        )

# settings.py
DJOSER = {
    'SERIALIZERS': {
        'user_create': 'users.serializers.CustomUserCreateSerializer',
    },
}

But as soon as I create a second serializer I get an error:
# users/serializers.py
class CustomUserCreateSerializer(UserCreateSerializer):
    class Meta:
        fields = tuple(User.REQUIRED_FIELDS) + (
            User.USERNAME_FIELD, User._meta.pk.name, 'password',
            'is_manager',
        )

class CustomUserSerializer(UserSerializer):
    class Meta:
        model = User
        fields = tuple(User.REQUIRED_FIELDS) + (
            User._meta.pk.name,
            User.USERNAME_FIELD,
            'is_manager',
        )
        read_only_fields = (User.USERNAME_FIELD,)

# settings.py
DJOSER = {
    'SERIALIZERS': {
        'user_create': 'users.serializers.CustomUserCreateSerializer',
        'user': 'users.serializers.CustomUserSerializer',
    },
}

I receive this error: ImportError: Module "users.serializers" does not define a "UserSerializer" attribute/class.
The traceback leads me back to class CurrentUserSerializer(settings.SERIALIZERS.user): in djoser/serializers.py. If I remove that CurrentUserSerializer class, or if I change its inherited class to serializers.ModelSerializer then everything runs as expected.
My guess is that this is a sort of circular dependency issue with the new CurrentUserSerializer, but I'm not quite sure how to solve it in my code (or if that's possible).

@joshua-s can you please take a closer look?

@dekoza I am looking into it.

@dekoza it is definitely the circular import that is creating the issue. We could resolve it either by splitting CurrentUserSerializer into another file like @jpdlor or by changing CurrentUserSerializer so that it is not a proxy class.
I personally lean towards the latter. We could still include the DeprecationWarning on the new serializer, and it would have the same level of visibility. It would also be good to investigate whether there is a better place to put the deprecation warning: like it was said above, it seems a bit strange to "punish" users with a DeprecationWarning straight out of the box on a valid endpoint.

Since this is urgent, I am going to open a PR for the second way and we can revise it from there.

We fixed it for us by having CurrentUserSerializer inherit from djoser's UserSerializer instead of the settings string. (This was also the case in Djoser before the deprication warning was introduced.)
Thanks for handling this so quick @joshua-s


ORA-00932: inconsistent datatypes: expected NUMBER got CLOB

Hi - I'm having problems getting my condition_occurrence ( and other tables) loaded using the Sprint Reporter tool. The issue is with the date format on columns like: condition_start_date.
I'll attach a sample of the csv layout and the sprint_reporter_log table records.
Can you confirm the required date format for each of the 4 date columns in the condition_occurrence table?
reporter_date_format_layout.txt

Thank you for reporting this. We want to maximize compatibility with database engines that sqlalchemy supports, but have only tested on MS SQL Server and sqlite (e.g. conn_str='sqlite:///pmi_sprint_2.db'). The latter to a lesser extent. I can't guarantee we'll reach feature-complete on all platforms, but Oracle would probably be third on the list.
Ok, that being said, I just took the first step to fixing this and replicated the bug on Oracle. I gave it a file which passed on mssql and sqlite (e.g. condition_occurrence from pitt) and got the same error you mentioned. On Oracle it appears that sqlalchemy generates DATEs where a type which includes the time was intended (screenshot below). I'm personally not familiar with how Oracle handles DATETIME. @cukarthik @johntmilnes would you have any insight here?

Hi Mark-
That's right.  Oracle's Date format hold times down to a sec and that's the datatype used in the omop tables. To get the data in you typically use the to_date function with the correct format mask for your input string.
How sqlAlchemy structures things is unknown to me but some straight sql might get you started:
################
CREATE TABLE DATE_TESTING (
START_DATE	DATE,
START_DATETIME	TIMESTAMP) ;
--Default date format
insert into DATE_TESTING (START_DATE) values ("2015-01-01");
--Sample to_date w format mask
insert into DATE_TESTING (START_DATE) values (to_date('11-FEB-17 10.19.58','YYYY-MM-DD HH24:MI:SS'));
-- Sample substring-ing
insert into DATE_TESTING (START_DATETIME) values  (TO_DATE(substr('2015-01-01T00:00:00-05:00',1,10)||' '||substr('2015-01-01T00:00:00-05:00',12,8), 'YYYY-MM-DD HH24:MI:SS') );
-- Extacting  just HH24:MI:SS
select substr('2015-01-01T00:00:00-05:00',12,8) from dual;
http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm#i34924
http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions180.htm
-John

Documenting that the error (cx_Oracle.DatabaseError) ORA-00932: inconsistent datatypes: expected NUMBER got CLOB occurs when we do insert here using pandas.Dataframe.to_sql().
In an ideal world we could trust sqlalchemy to abstract away these idiosyncrasies for us, but alas. I found a related (supposedly fixed) issue which suggests that on oracle, sqlalchemy's to_date might yield CLOBs.
@johntmilnes in the meantime are you able to run reporter.py using a sqlite connection?


Record doc strings & declaration ranges of builtin parsers & elaborators

Solves the second issue mentioned in https://github.com/leanprover/lean4/pull/522. For demonstration, also added short doc strings to most builtin term elaborators.
Lean is a powerful language, but some of its special syntax can be obscure for newcomers. I believe it is an open question of how helpful editor features like on-hover doc strings could be in teaching (or at least naming) these concepts, how much that helps more experienced users as well, and what the appropriate length of such doc strings should be (which surely is different depending on the experience level, so we would need to find some middle ground). This change allows us to start exploring these questions and refining the existing hover implementation. The tests have already uncovered one scenario where an unknown identifier should not fall back to the parent notation's doc string, for example.

Ironically, some of the more obscure notations like nested do actions and cdot notation are not covered by this because they are not elaborators per se. We should be able to manually inject TermInfo nodes referencing "fake" elaborator decls for them, but I'll leave that as future work.

Let's give the "temporarily fork Lake to fix the build" process a try. If there are no objections, I will merge both later today.

Ah, this is a bit spooky: because of GitHub's "improper" separation of forks (I assume), the submodule keeps working even if the commit is not actually contained in leanprover/lake.


ambient: fix targetRef for Authz, move all tests over

All other types set IsWaypoint, we missed it for ambient. Also move all
tests over to use targetRef

@howardjohn: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

integ-ambient_istio
f661be85a03b5bfe8b5399406adaa2f7d16d792f
link
true
/test integ-ambient

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


New 1K and 21K pretrain weights

This pull request adds pretrained weights to 3 models:
tresnet_m, mobilenetv3_large_100, vit_base_patch16_224
based on the paper "ImageNet-21K Pretraining for the Masses"
Compared to current results in:
https://github.com/rwightman/pytorch-image-models/blob/master/results/results-imagenet.csv

For tresnet_m, the new pretrain weights improve 1k accuracy from 80.8 to 83.1.
For mobilenetv3_large_100, the new pretrain weights improve 1k accuracy from 75.8 to 78.0 (--mode=mobilenetv3_large_100_1k_miil)
For vit_base_patch16_224, the new pretrain weights improve 1k accuracy from 81.8 to 84.4 (--mode=vit_base_patch16_224_1k_miil)

we also add to the models imagenet21K pretrain weights:
--model=tresnet_m_in21k_miil
--model=mobilenetv3_large_100_in21k_miil
--model=vit_base_patch16_224_in21k_miil
Our 21K pretraining significantly outperforms 1K pretraining on downstream tasks, even for small models. We also show in https://github.com/Alibaba-MIIL/ImageNet21K the our ViT 21k pretraining outperform jax official pretraining on dowsntream tasks:

@mrT23 actually, I'm going to tweak it myself, one other minor naming tweak I need to make.

@mrT23 I'm curious, where did the extra gains (84.4) on the vit-b model come from vs your original paper (83.9). Longer training or different hparams?

@rwightman
thanks for fixing and merging.
the comparative runs in the article on ImageNet are without KD.
For top scores on ImageNet, I added KD, which increased all scores by ~0.5% for each model.
Note that training ViT seems like an art form of its own. Not all things that work for convolutional model work for ViT.
For example, Adam with a standard wd of 1e-4 doesn't work well.
I am not sure I fully mastered ViT training on ImageNet1K, and I think this score can be further improved (dedicated optimizer, using drop path, more mixup\cutout\cutmix, ...).
Another example of ViT magic - it works much better with O1 amp mixed-precision than with PyTorch autocast -can almost double the batch size, and training speed is faster.


Code hang

attach onto arm code, one button for "move arm to hang position", then use analog stick to pull up

this is actually just part of arm code, closing


Any workarounds for @allow_blank_lines_before

I noticed that, maybe for now, @allow_blank_line_before has some issues.

And when I tried to create a formatter for nushell, @allow_blank_line_before does not work indeed.
For example, in following comments, a single "\n" node in between may correspond to multiple new-lines.

I have these in my query scheme file
[
  (comment)
] @allow_blank_line_before

[
  "\n"
] @append_hardline

Is there any trick to keep the empty lines in my case above?

Thanks for this, @blindFS
Firstly, note that it's @allow_blank_line_before, rather than @allow_blank_lines_before. I suspect, however, that this is just a typo in your issue; I think Topiary would have complained about an unknown capture name...however, just to make sure.
That said, the behaviour of @allow_blank_line_before and vertical whitespace in general is not very intuitive. This is particularly true when you grammar produces \n anonymous nodes. I believe what you're observing is expected, but it probably shouldn't be and we should look into this further as using vertical whitespace is pretty common between comments...

Hello @blindFS
I tried to format a few comments with the tree-sitter grammar you linked, and the following seems to work:
[
  (comment)
] @leaf

(comment) @append_hardline @allow_blank_line_before

At least, it formats the following piece of code as it is:
# FOO

# BAR
# BAZ
# QUX

Note that I don't see any \n in the CST, so maybe we're not working with the same version of the grammar (I used nushell/tree-sitter-nu@082a7c7, i.e. the current main)
You can check what I've done in https://github.com/tweag/topiary/tree/nb/nu_comments

@nbacquey  Thanks for your efforts! I use the same commit here, and I believe there's some inconsistent behaviours in the tree-sitter-nu's grammar. Try this snippet:
const a = 1
# FOO

# BAR
# BAZ
# QUX

You'll see "\n" nodes, and I'm afraid your method will fail in this case.

@nbacquey Thanks again for your fast response, maybe I'll create a PR to tree-sitter-nu latter to make it easier for topiary.
I have a related question here, say if I append new line for both "\n" and (comment) here. And I somehow try to stop duplications by @do_nothing:
[
  "\n"
] @append_hardline

(
  (comment) @append_hardline
  .
  "\n" @do_nothing
)

I think the expected behavior will be:

append new line to comment which is not followed by "\n"
append new line only once for comment followed by "\n"

But no append triggered for scenario 1. Do I misunderstand the query semantics here?

@nbacquey Never mind, I got it working with:
[
  "\n"
] @append_hardline

(
  (comment) @append_hardline
  .
  "\n"* @do_nothing
)


ENOENT: no such file or directory

First of all, thank you so much for this, this is exactly what we need to keep track of all our different framework component source code.
I am running into an issue when running the project. I have a basic version of Astro and I added the astrobook package and I have it configured in the astro.config.mjs
// @ts-check
import { defineConfig } from 'astro/config'
import react from '@astrojs/react'
import { resolve } from 'path'
import astrobook from 'astrobook'

// https://astro.build/config
export default defineConfig({
  integrations: [
    react({ include: ['**/react/*'] }),
    astrobook({ directory: 'src/components' }),
  ],
  output: 'static',
  vite: {
    css: {
      preprocessorOptions: {
        scss: {
          additionalData: `@import "${resolve(
            './src/styles/variables.scss'
          )}";`,
        },
      },
    },
  },
})

I copied the components from the example playground repo into my own and whenever I add the stories.ts it throws the below error when running the project.
Could this be that I'm running on a Mac instead of Windows?
Lockfile is up to date, resolution step is skipped
Already up to date
Done in 718ms

><EMAIL_ADDRESS>dev /Users/admin/Repositories/cli-toolchain/component-repository
> astro dev

ENOENT: no such file or directory, open '/Users/admin/component-repository/__virtual_astrobook_story_module_dashboard__react/ReactCounter/index/default.astro'
  Stack trace:

 ELIFECYCLE  Command failed with exit code 1.
admin@admins-MacBook-Pro component-repository % ```

On version 5 of astro it was just bombing out when trying to run the project,
On the latest version 4 of Astro, the project was running just fine, however when I click on the dashboard component it throws the same "no such file or directory"


Distance to e and g trajectories always set to -1.0

In the version of the treeMaker currently up on the master branch, it looks like distance_e_traj and distance_g_traj are always being set to -1.0. I'm guessing that the issue is with something in the physTools mod.

I see that the problem is actually in lines 185-203, where e_traj and g_traj are calculated in the self.separate is True case, but not the self.separate is False case. I'll go ahead and close this after editing the treeMaker on master directly


docs: Update preferred_practices.md Relay sections

The type of this PR is: docs

Description
This PR updates all sections in preferred_practices.md related to Relay according to the Relay Hooks RFC.
PR Checklist (tick all before merging)

[ ] I have included screenshots or videos to illustrate my changes, or I have not changed anything that impacts the UI.
[ ] I have tested my changes on iOS and Android.
[ ] I have added tests/stories for my changes, or my changes don't require testing/stories, or I have included a link to a separate Jira ticket covering the tests.
[ ] I have added a feature flag, or my changes don't require a feature flag. (How do I add one?)
[ ] I have documented any follow-up work that this PR will require, or it does not require any.
[ ] I have added an app state migration, or my changes do not require one. (What are migrations?)
[ ] I have added a changelog entry below or my changes do not require one.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Changelog updates
Changelog updates

Cross-platform user-facing changes

iOS user-facing changes

Android user-facing changes

Dev changes

Warnings

:warning:

❌ An error occurred while validating your changelog, please make sure you provided a valid changelog.

  Generated by :no_entry_sign: dangerJS against c9dc66250c21d9fb5217e94e92fa9e54c655f435

Closing in favor of https://github.com/artsy/eigen/pull/6292


gem_package installation issue

I'm attempting to update to the newest mysql cookbook 8.0.2. I was using an older version of mysql2_chef_gem and upgrade to use locally 1.1.0 and getting the same error i did with the older version.
       * gem_package[mysql2] action install

         ================================================================================
         Error executing action `install` on resource 'gem_package[mysql2]'
         ================================================================================

         Mixlib::ShellOut::ShellCommandFailed
         ------------------------------------
         Expected process to exit with [0], but received '1'
         ---- Begin output of /opt/chef/embedded/bin/gem install mysql2 -q --no-rdoc --no-ri -v "0.3.17" ----
         STDOUT: Building native extensions.  This could take a while...
         STDERR: ERROR:  Error installing mysql2:
         	ERROR: Failed to build gem native extension.

      /opt/chef/embedded/bin/ruby -r ./siteconf20160906-4638-1ifzp8p.rb extconf.rb
         checking for ruby/thread.h... yes
         checking for rb_thread_call_without_gvl() in ruby/thread.h... yes
         checking for rb_thread_blocking_region()... yes
         checking for rb_wait_for_single_fd()... yes
         checking for rb_hash_dup()... yes
         checking for rb_intern3()... yes
         -----
         Using mysql_config at /usr/bin/mysql_config
         -----
         checking for mysql.h... no
         checking for mysql/mysql.h... no
         -----
         mysql.h is missing.  please check your installation of mysql and try again.
         -----
         *** extconf.rb failed ***
         Could not create Makefile due to some reason, probably lack of necessary
         libraries and/or headers.  Check the mkmf.log file for more details.  You may
         need configuration options.

         Provided configuration options:
         	--with-opt-dir
         	--with-opt-include
         	--without-opt-include=${opt-dir}/include
         	--with-opt-lib
         	--without-opt-lib=${opt-dir}/lib
         	--with-make-prog
         	--without-make-prog
         	--srcdir=.
         	--curdir
         	--ruby=/opt/chef/embedded/bin/ruby
         	--with-mysql-dir
         	--without-mysql-dir
         	--with-mysql-include
         	--without-mysql-include=${mysql-dir}/include
         	--with-mysql-lib
         	--without-mysql-lib=${mysql-dir}/lib
         	--with-mysql-config
         	--without-mysql-config

         extconf failed, exit code 1

         Gem files will remain installed in /opt/chef/embedded/lib/ruby/gems/2.1.0/gems/mysql2-0.3.17 for inspection.
         Results logged to /opt/chef/embedded/lib/ruby/gems/2.1.0/extensions/x86_64-linux/2.1.0/mysql2-0.3.17/gem_make.out
         ---- End output of /opt/chef/embedded/bin/gem install mysql2 -q --no-rdoc --no-ri -v "0.3.17" ----
         Ran /opt/chef/embedded/bin/gem install mysql2 -q --no-rdoc --no-ri -v "0.3.17" returned 1

         Resource Declaration:
         ---------------------
         # In /tmp/kitchen/cache/cookbooks/mysql2_chef_gem/libraries/provider_mysql2_chef_gem_mysql.rb

   21:           gem_package 'mysql2' do
   22:             gem_binary RbConfig::CONFIG['bindir'] + '/gem'
   23:             version new_resource.gem_version
   24:             action :install
   25:           end
   26:         end

         Compiled Resource:
         ------------------
         # Declared in /tmp/kitchen/cache/cookbooks/mysql2_chef_gem/libraries/provider_mysql2_chef_gem_mysql.rb:21:in `block in <class:Mysql>'

         gem_package("mysql2") do
    action [:install]
    retries 0
    retry_delay 2
    default_guard_interpreter :default
    package_name "mysql2"
    version "0.3.17"
    declared_type :gem_package
    cookbook_name "mysql_support"
    gem_binary "/opt/chef/embedded/bin/gem"
         end

       ================================================================================
       Error executing action `install` on resource 'mysql2_chef_gem[default]'
       ================================================================================

       Mixlib::ShellOut::ShellCommandFailed
       ------------------------------------
       gem_package[mysql2] (/tmp/kitchen/cache/cookbooks/mysql2_chef_gem/libraries/provider_mysql2_chef_gem_mysql.rb line 21) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1'
       ---- Begin output of /opt/chef/embedded/bin/gem install mysql2 -q --no-rdoc --no-ri -v "0.3.17" ----
       STDOUT: Building native extensions.  This could take a while...
       STDERR: ERROR:  Error installing mysql2:
       	ERROR: Failed to build gem native extension.

    /opt/chef/embedded/bin/ruby -r ./siteconf20160906-4638-1ifzp8p.rb extconf.rb
       checking for ruby/thread.h... yes
       checking for rb_thread_call_without_gvl() in ruby/thread.h... yes
       checking for rb_thread_blocking_region()... yes
       checking for rb_wait_for_single_fd()... yes
       checking for rb_hash_dup()... yes
       checking for rb_intern3()... yes
       -----
       Using mysql_config at /usr/bin/mysql_config
       -----
       checking for mysql.h... no
       checking for mysql/mysql.h... no
       -----
       mysql.h is missing.  please check your installation of mysql and try again.
       -----
       *** extconf.rb failed ***
       Could not create Makefile due to some reason, probably lack of necessary
       libraries and/or headers.  Check the mkmf.log file for more details.  You may
       need configuration options.

       Provided configuration options:
       	--with-opt-dir
       	--with-opt-include
       	--without-opt-include=${opt-dir}/include
       	--with-opt-lib
       	--without-opt-lib=${opt-dir}/lib
       	--with-make-prog
       	--without-make-prog
       	--srcdir=.
       	--curdir
       	--ruby=/opt/chef/embedded/bin/ruby
       	--with-mysql-dir
       	--without-mysql-dir
       	--with-mysql-include
       	--without-mysql-include=${mysql-dir}/include
       	--with-mysql-lib
       	--without-mysql-lib=${mysql-dir}/lib
       	--with-mysql-config
       	--without-mysql-config

       extconf failed, exit code 1

       Gem files will remain installed in /opt/chef/embedded/lib/ruby/gems/2.1.0/gems/mysql2-0.3.17 for inspection.
       Results logged to /opt/chef/embedded/lib/ruby/gems/2.1.0/extensions/x86_64-linux/2.1.0/mysql2-0.3.17/gem_make.out
       ---- End output of /opt/chef/embedded/bin/gem install mysql2 -q --no-rdoc --no-ri -v "0.3.17" ----
       Ran /opt/chef/embedded/bin/gem install mysql2 -q --no-rdoc --no-ri -v "0.3.17" returned 1

       Resource Declaration:
       ---------------------
       # In /tmp/kitchen/cache/cookbooks/mysql_support/recipes/remote_root.rb

         3: mysql2_chef_gem 'default' do
         4:   action :install
         5: end
         6:

       Compiled Resource:
       ------------------
       # Declared in /tmp/kitchen/cache/cookbooks/mysql_support/recipes/remote_root.rb:3:in `from_file'

       mysql2_chef_gem("default") do
         action [:install]
         updated true
         updated_by_last_action true
         retries 0
         retry_delay 2
         default_guard_interpreter :default
         declared_type :mysql2_chef_gem
         cookbook_name "mysql_support"
         recipe_name "remote_root"
         gem_version "0.3.17"
       end

I'm using it with database cookbook to install a user for a remote user. It looks like it is having a compilation issue.  The mysql installation is fine
mysql> \s
mysql  Ver 14.14 Distrib 5.6.29, for Linux (x86_64) using  EditLine wrapper
Connection id:		4
Current database:
Current user:		root@localhost
SSL:			Not in use
Current pager:		stdout
Using outfile:		''
Using delimiter:	;
Server version:		5.6.29 MySQL Community Server (GPL)
Protocol version:	10
Connection:		Localhost via UNIX socket
Server characterset:	latin1
Db     characterset:	latin1
Client characterset:	utf8
Conn.  characterset:	utf8
UNIX socket:		/mysql_tmp/mysqld.sock
Uptime:			8 min 50 sec
Threads: 1  Questions: 41  Slow queries: 0  Opens: 87  Flush tables: 1  Open tables: 80  Queries per second avg: 0.077

probably a dulicate of #17

There isn't much information provided in #17 which is why I created this one.

For many Linux distros, the compilation process requires files from libmysqlclient-dev or mysql-devel.  I added this line to my recipes before the mysql2_chef_gem resource:
package 'libmysqlclient-dev'
Refer to the installation instructions for the gem at: https://github.com/brianmario/mysql2

@asheperak if this works then it needs to be added to the readme. It works prior to 8.0 without that on centos.

same as issue #21

Both issue #21 #22 are fixed by my PR chef-cookbooks/mysql#492.

@jpmat296 I'm looking at the pr and not seeing where it fixes RHEL/Centos Platform. Right now I'm just add
package 'mysql-devel' to my installs and it solves the issue

I've updated the PR. For Fedora / RHEL / Centos, header file mysql.h is missing without my new PR. HTH


year restriction to 4 digit in date inputs

@yuwenmemon @mollfpr
Details
Restrict year to 4 digits in the date inputs

Used max property to provide max date for the input which won't allow more than 4 digits in year -- Works in Chrome
Passed value true to moment constructor parameter strict which considers 4 digit in a year to be valid -- Partially works in Safari & Firefox

Fixed Issues

$ https://github.com/Expensify/App/issues/13837
PROPOSAL: https://github.com/Expensify/App/issues/13837#issuecomment-1379730211
Tests

Open any datepicker in the application
Verify when we reach to year part it won't allow more than 4 digits(This needs to test on Web and desktop only, for mWeb and native platforms just need to test datepicker working normally or not)

[X] Verify that no errors appear in the JS console

Offline tests

QA Steps

Open any datepicker in the application
Verify when we reach to year part it won't allow more than 4 digits(This needs to test on Web and desktop only, for mWeb and native platforms just need to test datepicker working normally or not)

[X] Verify that no errors appear in the JS console

PR Author Checklist

[X] I linked the correct issue in the ### Fixed Issues section above
[X] I wrote clear testing steps that cover the changes made in this PR

[X] I added steps for local testing in the Tests section
[X] I added steps for the expected offline behavior in the Offline steps section
[X] I added steps for Staging and/or Production testing in the QA steps section
[X] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[X] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[X] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[X] I included screenshots or videos for tests on all platforms
[X] I ran the tests on all platforms & verified they passed on:

[X] Android / native
[X] Android / Chrome
[X] iOS / native
[X] iOS / Safari
[X] MacOS / Chrome / Safari
[X] MacOS / Desktop

[X] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[X] I followed proper code patterns (see Reviewing the code)

[X] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[X] I verified that comments were added to code that is not self explanatory
[X] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[X] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[X] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[X] I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[X] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[X] I verified the JSDocs style guidelines (in STYLE.md) were followed

[X] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[X] I followed the guidelines as stated in the Review Guidelines
[X] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[X] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[X] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[X] I verified that if a function's arguments changed that all usages have also been updated correctly
[X] If a new component is created I verified that:

[X] A similar component doesn't exist in the codebase
[X] All props are defined accurately and each prop has a /** comment above it */
[X] The file is named correctly
[X] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[X] The only data being stored in the state is data necessary for rendering and nothing else
[X] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[X] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[X] All JSX used for rendering exists in the render method
[X] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[X] If any new file was added I verified that:

[X] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[X] If a new CSS style is added I verified that:

[X] A similar style doesn't already exist
[X] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[X] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[X] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[X] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[X] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
https://user-images.githubusercontent.com/14358475/212284446-6041cac0-bca8-4dd9-b82c-18f40d0fe901.mov

Mobile Web - Chrome

Mobile Web - Safari

Desktop
https://user-images.githubusercontent.com/14358475/212287639-bdf86fa1-a748-4728-80bc-6194a6130091.mov

iOS

Android

I think the mistake I made in GitHub link while raising the PR caused @yuwenmemon @mollfpr not taken automatically as a reviewer.

Reviewer Checklist

[x] I have verified the author checklist is complete (all boxes are checked off).
[x] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

All yours @yuwenmemon

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by @yuwenmemon in version: 1.2.55-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by @AndrewGable in version: 1.2.55-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Remove async/await for now

Currently, async/await is used all over the place, however, it does not provide any advantage b/c we do not submit any task to an executor or used any concurrency.
I argue that we should selectively re-introduce it properly in parts where it actually makes sense.
You can refer to this resource to learn more.

Yeah if it's not a big work it would be awesome.
But so far, I have prioritized building scalable apps faster.
Do you think you can implement this?

No big work.
I totally agree what you said about scalable apps, but right now I tend to get a solid foundation and then see where async provides benefit. Right now, I had issues that I could program some stuff the way I would like to b/c async interfering :)
#13 is up

oh that's so fast!
yea true solid foundation at the beginning is important !
I will check them later. Thank you!


Remove the SignUp Image on Home Page

Current Behavior

Remove the SignUp Image on Home Page
Desired Behavior

Remove the current image with the Updated one
Implementation

Current State:

Updated Image:
Acceptance Tests

Mockups

Contributor Guide

@leecalcote Can you please provide the screenshot of the current one from your Mac 👀

hey can you assign this issue to me, would love to work on it.

@UtkarshMishra12 Thank you for this issue. @Rahilsiddique This requires a quick update. Do ask for help here if needed.

yes sure, I will do it by today itself


More verbosity when re-initializing components

I often continue training my models using partial_fit preceded by a set_params() where I increase/decrease parameters such as the learning rate. However, certain parameter modifications trigger a re-initialization, e.g. setting the learning rate using set_params will re-initialize the optimizer. This can be problematic for optimizers that have a state, such as RMSprop or Adam.
So either

we enable the user to set parameters such as the learning rate without re-initializing the optimizer or
we make this initialization visible.

we enable the user to set parameters such as the learning rate without re-initializing the optimizer

Is there a reliable way to do this? My impression is that some parameters such as learning rate are treated differently by the optimizer, so that a simple setattr isn't actually enough. Maybe we should advise users that the safest way to achieve these kinds of things is to use learning rate schedulers, since they know what needs to be done.

@BenjaminBossan I believe we need a reliable way to reload an optimizer. Changing LR is not the only use case for this. I am trying to restart model training with a different loss function, and currently it does not work.

@BenjaminBossan I believe we need a reliable way to reload an optimizer. Changing LR is not the only use case for this. I am trying to restart model training with a different loss function, and currently it does not work.

But that should be already possible. You will lose the optimizer's state (e.g., for Adam the running average estimation of the FI matrix) but in your case this is probably OK. Example:
net.set_params(optimizer=torch.optim.Adam, criterion=torch.nn.NLLLoss)

should work fine.


Add contributing URL field to .DEREK.yml

This commit adds contributing_url field to the .DEREK.yml file to point
to contribution guide.
Signed-off-by: Vivek Singh<EMAIL_ADDRESS>
Description

Motivation and Context

[x] I have raised an issue to propose this change (required)
Fixes: #87

How Has This Been Tested?

Test result and process added in comments below.
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I've read the CONTRIBUTION guide
[x] I have signed-off my commits with git commit -s
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

LGTM. Can we find away to test it - or if that's too hard in the final method to figure out the URL outside and inject it then test that new method?

I think we can write a method to figure out URL and test that method. I will try again to setup derek. Do you have any documentation for that?

Documentation on how to write tests? There's lots of coverage in this project so I'd suggest copying the approach seen in another test file.

Failing that ask on slack.

Nope .. I was asking any documentation on how to setup derek ?

Tested against this repo. https://github.com/viveksyngh/openfaas-functions for this PR https://github.com/viveksyngh/openfaas-functions/pull/3 using below derek configuration.
curators:
 - viveksyngh

features:
 - dco_check
 - comments

contributing_url: https://github.com/alexellis/derek/blob/master/CONTRIBUTING.md

@alexellis I have also added a new function which gets contributing URL and also added the unit test for that.

Awesome 🎉 !
Glad you were able to test it end-to-end like this too. Did it help having worked with GitHub Apps in OpenFaaS Cloud?

yeah .. that's for sure. It was really helpful.

Derek add label: help wanted

Derek remove label: help wanted

I've released and deployed Derek 0.6.2, let's try it out?

Update faas/.DEREK.yml to add the link (raise a PR) and I'll merge
Find an openfaas repo that uses the redirect
Raise a PR there without a DCO and check the link to the guide


Fix BuildProperties

Fixes #134 by using the primitive try/finally construct
Fixes another bug where a Some(null) could be created. Please don't use .toOption.
Lets BuildProperties be constructed with a different resource path in case downstream users have different project structures. Bonus effect: made it much easier to test.
Oh, by the way, the test for this class actually tests something now instead of just making itself pass with Mockito. While the sweet minty taste is compelling, we do have to actually test the code.
Other cleanup.

Much better. :shipit:


Fixed the demo scene path and the Streaming Assets path issue

Because of this issue, demo scene was not opening from the tool menu and also json file was not being copied to the StreamingAssets folder

Thanks we are aware of hardcoded path issues. We are looking into options making it more flexible.
You probably checked out the repo on GitHub into the wrong folder. Please change your folder path to how it is on the asset store (Assets/MindPort/VR Builder/Core). This should fix your issue.

I have created your mentioned directory. But when I download this VR Builder repository, the path becomes: Assets/MindPort/VR Builder/Core/VR-Builder and therefore the path to the scene becomes: Assets/MindPort/VR Builder/Core/VR-Builder/Demo/Runtime/Scenes/VR Builder Demo - Core Features.unity but according to the DemoSceneLoader.cs the path to the scene is: Assets/MindPort/VR Builder/Core/Demo/Runtime/Scenes/VR Builder Demo - Core Features.unity, which does not contain VR-Builder folder. Not a big issue but it is broken to me.

Yes you have to rename / create the folder structure your self. This is a conflict with how the asset is delivered over the Unity AssetStore
This is where you have to places the GitHub files. So everything works.

Thanks a lot :)


Move out any remaining non-CSI compliant components to an opt in package

The goal of this project is to provide CSI-like experience on .NET Core.
The remaining non-standard-CSI behavior is the usage of HTTP resolver which was thrown in here initially.
It should be moved to an external package so that it's usage is an opt in.

@filipw We can close this, right?


systemd service

Hi I created a systemd service file for the controller to startup and be monitored by systemd.
garage - Controls the garage door

[Unit]
Description="Garage Door Controller server"
After=network.target auditd.service
[Service]
WorkingDirectory=/usr/local/garage-door-controller
ExecStart=/usr/local/garage-door-controller/controller.py
StandardOutput=syslog
StandardError=syslog
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
Alias=garage.service
You might want to add it to the repository
For this to work you need to add "!/usr/bin/python" to the top of controller.py

This is great.  I'n not very familiar with the systemd setup.  Can you put together some instructions on how to install this and use it?  If so, then I'll be happy to include it in the main trunk.

I've got this script working on a Raspberry Pi, here's what I needed.

root@raspberrypi:/home/pi# lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 8.0 (jessie)
Release:        8.0
Codename:       jessie

I added this to the top of controller.py
#!/usr/bin/python
And here's the 'service' file I used (based on the above but needed to add the python exe to the ExecStart line.
`root@raspberrypi:/home/pi# more /lib/systemd/system/garagedoor.service
[Unit]
Description="Garage Door Controller server"
After=network.target auditd.service
[Service]
WorkingDirectory=/home/pi/garage-door-controller
ExecStart=/usr/bin/python /home/pi/garage-door-controller/controller.py
StandardOutput=syslog
StandardError=syslog
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
Alias=garage.service`
For completeness here's the output from 'Service garagedoor status'
`root@raspberrypi:/home/pi# service garagedoor status
● garagedoor.service - "Garage Door Controller server"
Loaded: loaded (/lib/systemd/system/garagedoor.service; disabled)
Active: active (running) since Thu 2017-01-19 11:04:33 UTC; 6min ago
Main PID: 3425 (python)
CGroup: /system.slice/garagedoor.service
└─3425 /usr/bin/python /home/pi/garage-door-controller/controller.py
Jan 19 11:04:33 raspberrypi systemd[1]: Started "Garage Door Controller server".
Jan 19 11:04:37 raspberrypi garage_controller[3425]: we are using SMTP
Jan 19 11:04:37 raspberrypi garage_controller[3425]: Open: unknown => closed
Jan 19 11:04:37 raspberrypi garage_controller[3425]: Close: unknown => closed`


fix: added predefined relationInfer control and empty array control f…

Inferencer relationInfer issue with accessor key when the field is multiple but does not have any object/value in the array
Closing issues
closes #4497

[x] Corresponding issues are created/updated or not needed
[x] Docs are updated/provided or not needed
[x] Examples are updated/provided or not needed
[x] TypeScript definitions are updated/provided or not needed
[x] Tests are updated/provided or not needed
[x] Changesets are provided or not needed

Hi @rasitcolakel thanks for the PR! Just a little note: our default branch is next for new PRs.
Would be nice to checkout from next and create PR against next branch.


Could not set default root in configuration file

If you change ~/.angusdk/config.json "default_root" entry with any endpoing, angus.connect() continue to use gate.angusapi.com

It comes from default command line argument. Fix it by removing default value.


MkDocs/Sphinx integration (a la mknotebooks)

Description
A very frequent use case for notebooks is to writing examples for software libraries.
Pulling an example from one of my own libraries, this example is produced by creating it in a Jupyter notebook, and then using mknotebooks to convert it into a MkDocs-compatible webpage.
Anecodatally, most other Python software I see generates substantial portions of their own documentation in the same way.
Now conveniently, Marimo already supports export to HTML! The only thing that is missing is the ability to make this part of documentation generation.
The main two documentation generators seem to MkDocs + mkdocs-material (usually newer software libraries) or Sphinx (usually older software libraries).
It'd be awesome if there was a tool similar to mknotebooks (or whatever Sphinx uses that's similar) to ease adopting Marimo for such use-cases.
Suggested solution

Alternative
Continue to use Jupyter instead of Marimo.
Additional context
No response

Nice! I use mkdocs-jupyter. But marimo with mkdocs is something I've been playing around with for a second.
So just pushed what I have locally up:

very messy, just playing around: https://github.com/dmadisetti/mkmarimo
utilizing the quarto base: https://github.com/dmadisetti/quarto-marimo
to increase code reusage.

I know this is definitely in marimo's plans to make notebooks more portable.
I'm a full time PhD student, but here' the timeline as I see contributing to marimo:

Polish off and migrate the quarto/ pandoc plugin to marimo-team/mo-quarto for embedded markdown exports

Using this with my own notebooks, but ideally should be in a place to share with others

Get native save / caching working

I'd like to have some pretty heavy notebooks in a sharable form. Leveraging aggressive caching or save outputs means that compute heavy notebooks can be quickly executed, and still technically having the notebook run in browser, and make it interactive.

Polish and publish the MkDocs plugin

MkDocs is also my preference of choice, but having quarto means that it can potentially be embedded anywhere.

Some action items that have already been crossed off!

native markdown format (e.g. https://github.com/marimo-team/marimo/blob/main/marimo/_tutorials/markdown_format.md)

Relevant issue (your choice to mark as dupe):

https://github.com/marimo-team/marimo/issues/1882

Also publishing to Observable:

https://github.com/marimo-team/marimo/discussions/962

FYI: We, alongside a few contributors, are working on a mkdocs plugin.

Note, Jupyterbooks are built using Sphinx and Sphinx seems to be more extensible than MkDocs which would be one argument for heading the Sphinx way.

Wanted to drop by to post the marimo-mkdocs plugin repo here - https://github.com/marimo-team/mkdocs-marimo
CC: @patrick-kidger

Oh, super interesting! Thank you.
I've just taken a look at it -- if I understand correctly this isn't a way to transform a Marimo notebook, but is essentially a competing serialization format to the current .py files? (It's still executable, just now it's in .md format instead.)
I'm guessing the reactivity comes with some heavy extra extensions. I expect static web pages to be my 99% use-case -- if I set is_reactive: false will these not be loaded?

I'm guessing the reactivity comes with some heavy extra extensions. I expect static web pages to be my 99% use-case -- if I set is_reactive: false will these not be loaded?

From this link - https://marimo-team.github.io/mkdocs-marimo/getting-started/configuration/#code-fence-options, it shows how setting is_reactive=false just shows a static output:

By default is_reactive=true. If your primary usecase involves graphs/plots/visualizations to be static, setting this parameter to be false would make sense.

As @Haleshot mentioned, we've created https://github.com/marimo-team/mkdocs-marimo
It is early so please provide feedback (and recommend to use the latest marimo with it).
@patrick-kidger you can disable reactivity globally and locally, you can find the configuration options here.

Thanks! Unfortunately I don't think this is quite what the original issue was about: this is a way to write cells directly into markdown, not a way to take an existing .py file and host it through mkdocs.
As for reactivity, indeed, I already found the relevant part of the documentation. What I didn't see was a guarantee that doing this would result in skipping what I assume is otherwise a very large JS download.

not a way to take an existing .py file and host it through mkdocs.

@patrick-kidger - this plugin does allow that too (just not documented on the readme yet). Let me know if i am understanding the request correctly.
You can, do:
# Some document

This will inline my notebook

!marimo_file notebook.py

Or you can reference a .py file in your nav:
nav:
  - Overview: index.md
  - Getting Started:
      - Installation: getting-started/installation.md
      - Notebooks in Navigation: getting-started/nav_notebook.py  # <- this is a marimo file

Both above may only exist reactively, so it will likely need some additional work for your use-case.

What I didn't see was a guarantee that doing this would result in skipping what I assume is otherwise a very large JS download.

Right now our UI elements heavily use web-components which require downloading our JS and CSS. I don't think we will avoid downloading the JS anytime soon. We do lazy-load a lot of our javascript, but we be more aggressive about this.

just not documented on the readme yet

Ah, that's why! I took a look through the rest of the docs too but it wasn't clear that this was possible.

Right now our UI elements heavily use web-components which require downloading our JS and CSS. I don't think we will avoid downloading the JS anytime soon.

Ah, that's a shame! I'll stick to Jupyter for the standard display some code + display it's text output for now, and give this a try when I need something more heavyweight. (As another open source maintainer, I totally understand wanting to focus on other priorities. :) )

I appreciate the help and feedback @patrick-kidger. I will let you know if we end getting the outputs more light-weight.


Problems with ScssLexer

(Original issue 1157 created by tshatch on 2015-10-13T21:13:03.289637+00:00)
It needs at least a partial rewrite, the 'attr' handling can infinite loop and interpolation doesn't appear to work right.  Examples welcomed.

(Original issue was assigned to tshatch)


Sphinx-copybutton not visible in high contrast mode

Not planned as copy-button is not a core dep for PST


Update words to match the code.

Checklist

[x] I've looked at the contribution guidelines.
[x] This pull request is complete and ready for review.

Description
Seems like some names of variables used in the sentence is out of date.
Here is an update to align the variables' names with what they look like in the code block.

邮件已收到。我会尽快回复！祝您一切顺利！兰雨田


call service

Would be great if we could have this call a service as well

Thanks for the suggestion @iantrich . I'll have a look at what needs to be changed.
What was the use case you had in mind?

I didn't have anything in particular, just came across your card and thought it would be a good addition. I want to add something similar to my list-card for LL and if I get around to that soon, I'll be sure to add a PR here with a similar implementation.

@iantrich Your list-card looks awesome! I started working on a custom component to get a list of recent / upcoming release of Nintendo switch games.
I'll definitely try to use your card, seems to fit my need perfectly ;)

Using my custom feedparser component with this Switch RSS feed
and the list-card should get you exactly what you want


CSS should accept objects

µ( _selector ).css() should accept object.  In addition to passing pre-built objects, why type
µ( _selector ).css( 'background-color', '#000' );
µ( _selector ).css( 'color', '#fff' )

when you can type
µ( _selector ).css( {  'color' : '#fff', 'background-color' : '#000'  } );

In the spirit of learning how to use Git and Pull requests (PRs) @yourfirstpr, this issue should be approachable, though it does require some coding. This should be a fairly straight forward change and will add small functionality to microbe. It's what we'd consider a "low risk" change since it's only affecting a single module
This does not need to be done exactly as shown, but is intended to get more comfortable with git, pull requests, and give a peek into how microbe works.
Here's what you need to do:
1 ) Fork the repo
2 ) Clone the repo to your local machine
3 ) Switch to the cssAcceptsObjects branch
4 ) install the dependencies with npm i
3 ) Open up src/modules/elements.js in your favorite editor
4 ) Check if _property is an object.  change line 167 to
var isObject = Microbe.isObject( _property );

5 ) allow the set css function to recieve a value. change line 169
var _setCss = function( _elm, _v )

but the css needs to accept this or the main value.  change line 173 to
_elm.data.css[ _property ]  = _v || _value;

6 ) line 183 should now be available if it is an object:
if ( _value || _value === null || _value === '' || isObject )

7 ) then, just inside that if statement (line 185), make the if statement to catch the object
            if ( isObject )
            {
                for ( var prop in _property )
                {
                    this.css( prop, _property[ prop ] );
                }

                return this
            }

8 ) Save the file
9 ) open up tests/unit/elements.js
10 ) write a test for css recieving an object (line 153)
        µTarget.css( { 'background-color' : 'rgb(0, 255, 0)', 'color' : '#fff' } );
        assert.equal( µTarget[0].style.backgroundColor, 'rgb(0, 255, 0)', 'css object processed' );

11 ) run npm run build to build all the dist files and the tests.  this will also test the files.
IF THIS FAILS, dont worry!  Just open the local test page in tests/index.html and see what's wrong, then recheck your code
12 ) Once everything runs smoothly, commit your changes.
13 ) Pull the repo.  This makes sure your branch is up to date before pushing your changes.
14 ) Push your changes to your fork
15 ) Create a PR and include Fixes #94 in the message
16 ) Get merged and celebrate :tada:

merged into branch microbe0.4.14