Images are sometimes broken (blob URLs)

Bug Description
This story was created yesterday (so after blob URL fix where we disable preview and autosave while uploading) and contains blob URLs:
https://stories-new-wordpress-amp.pantheonsite.io/wp-admin/post.php?post=9775&action=edit
Update:
While the image/video is uploading you still can:

Drop it on other elements (includes Set as BG button)
.
Duplicate
 it (or page?).

All of these will cause onUploadedFile/onUploadFailure to not find and update the uploaded resource URL by id (which is originally created element id).
Expected Behaviour

Steps to Reproduce

Screenshots

Additional Context

Plugin Version:
Operating System:
Browser:

Do not alter or remove anything below. The following sections will be managed by moderators only.
Acceptance Criteria

Implementation Brief

Follow-up to #2547
Keep us posted on what you find!
Maybe autosave still kicking in?
Might be worth implementing some of the ideas in #2547 to prevent this kind of thing, e.g. by removing blob videos from generated markup just in case.

Posted my findings at the top.
Since we don't have any ID of that resource we can just look for that blob URL on all resources and replace it after the upload is done. On failure, we should remove the element containing that resource (it might be a BG element or other shape/image element).

We just need to sort this out:
If the upload fails, we will:

in case of BG: remove BG image = revert it to shape
other elements: shapes - we can remove the image (like in BG)
images/videos - we need to store previous image/video to be able to revert, should we delete the whole element? and to be consistent - shapes also?

A couple of questions:

Do we know why these failures are occurring?
Are the reasons for the failures deterministic so we can just prevent/block the whole thing to begin with?

If not, and we have to just after the fact figure out what to do, then I think the right solution would be to delete the element but also show the user a warning indicating so. Something along the lines of: "An [image or video] failed to upload and was removed from the story."
@samitron7 @pbakaus thoughts?

A couple of questions:

Do we know why these failures are occurring?
Are the reasons for the failures deterministic so we can just prevent/block the whole thing to begin with?

If not, and we have to just after the fact figure out what to do, then I think the right solution would be to delete the element but also show the user a warning indicating so. Something along the lines of: "An [image or video] failed to upload and was removed from the story."
@samitron7 @pbakaus thoughts?

That's a last resort, but yes. Better than just erring out.

That's a last resort, but yes. Better than just erring out.

Fix for the happy path is ready.
More robust solution for the failing scenario (have a PoC of this):
Even if we remove all elements using the given resource, our history will be still broken and the user can save the blob URLs (just hit undo, the state with blob URLs will be restored, save, 💥 ).
My idea of fixing this + bringing back the last used resource is (without storing the last used resources in a separate place):
Use the history and scan it for the last non-blob resource on a given element, restore that (just the resource, so the element will not change its position/size). In the case of whole elements (duplicates of still uploading element) - remove then. We also want to rewrite the history (remove blobs then merge identical states).
@pbakaus @o-fernandez @samitron7 WDYT, will that be better UX?

Do we know why these failures are occurring?
Are the reasons for the failures deterministic so we can just prevent/block the whole thing to begin with?

They will occur randomly because of network/server issues. Ideally not too often, but can happen (like on our Pantheon).

Do we do any sort of retry in case of a network/server failure? Seems that the best implementation would be that if failure is do to an issue we expect to be transient that we'd retry a few times before fully failing. If we fail ultimately after x attempts, then what you say of removing the object and letting the user know of the failure is OK.

Do we do any sort of retry in case of a network/server failure? Seems that the best implementation would be that if failure is due to an issue we expect to be transient that we'd retry a few times before fully failing. If we fail ultimately after x attempts, then what you say of removing the object and letting the user know of the failure is OK.

We don't retry right now - that might be a fix for transient issues. Of course, removing the elements after 1 or 2 minutes can be annoying (you did a few operations on it) - but that shouldn't happen too often.
The issue with blobs in history still remains.

Verified in QA - Tested in PR#2730


inserts final new-line to file

which then is a template-lint violation. This should respect editorconfig but does not seem to.

I suspect this is. because prettier itself does not allow this to be configured: https://prettier.io/docs/en/options.html#end-of-line

This extension is deprecated, so please use Prettier directly!


Display version info about ckan to make for easier failure diagnosis

Similar to KSP-CKAN/NetKAN#2164

Fetching latest ckan.exe
372 [1] WARN CKAN.KSPManager (null) - 7f34b7dadea974cc5375c68adcf188057d88bd32 at /home/jenkins/workspace/PR builder - NetKAN metadata/NetKAN/dummy_ksp is not a vaild install
388 [1] WARN CKAN.KSPManager (null) - Auto-start instance was invalid: Exception of type 'CKAN.InvalidKSPInstanceKraken' was thrown.
v1.14.0-2-g6d4e975 (beta)


Training Time

Dear Authors,
How long does your method need to train? Do you release all dataset?
Thanks

Hi, the training process is around ten days. The entire dataset has been made available on Hugging Face and can be accessed via this link: https://huggingface.co/datasets/zjunlp/Mol-Instructions.


Fix sortByDescending which fixes Aggregate.

@mikioh: Any chance this might get merged?

Did run into this bug as well. @mikioh do you have any ETA when this could be merged/fixed?


Desktop sizing

Is it possible to decrease the desktop size of the sliding element (like only in middle of screen)?

Hi @dahormez
Currently there's no option to do this, but you can achieve that effect by editing the #zuck-modal-content css styles.


Confirmation of log save destination

Which version of the AzCopy was used?
Note: The version is visible when running AzCopy without any argument
10.17.0
Which platform are you using? (ex: Windows, Mac, Linux)
Linux
What command did you run?
Note: Please remove the SAS to avoid exposing your credentials. If you cannot remember the exact command, please retrieve it from the beginning of the log file.
Could you please inform me where the logs are stored when azcopy is executed?
I am aware that they are typically outputted under the './azcopy' directory.
What problem was encountered?
How can we reproduce the problem in the simplest way?
Have you found a mitigation/solution?

Hi @furuta17 ! It should be under $HOME$\.azcopy in Linux. Please view this document for additional information: https://learn.microsoft.com/en-us/azure/storage/common/storage-use-azcopy-configure#log-and-plan-files


Fatal error: runtimer: bad p when resetting the value of a ticker pointer

What version of Go are you using (go version)?

$ go version
go version go1.15.10 linux/amd64

Does this issue reproduce with the latest release?
Yes, tried this on 1.14, 1.15, and 1.16
What operating system and processor architecture are you using (go env)?
Running on Ubuntu 20.04 kernel version 5.4.0-66-generic
Docker container running Debian 10
This was done using the base docker image golang:1.15
go env Output
$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/root/.cache/go-build"
GOENV="/root/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build893808163=/tmp/go-build -gno-record-gcc-switches"

What did you do?

Dockerfile
FROM golang:1.15 as final

RUN apt-get update
RUN apt-get install git gcc

WORKDIR /go/src/app
COPY . .

RUN go get -d -v ./...
RUN go build test_timer.go

CMD ["./test_timer"]

test_timer.go
package main

import (
    "sync"
    "time"
)

func main() {
    testTicker()
}

func testTicker() {
    waitGroup := sync.WaitGroup{}

    for i := 0; i <= 2; i++ {
        waitGroup.Add(1)
        go func () {
            defer waitGroup.Done()
            timeout := 10 * time.Millisecond
            ticker := time.NewTicker(timeout)

            for {
                select {
                case <-ticker.C:
                    ticker.Stop()
                    *ticker = *time.NewTicker(timeout)
                }
            }
        }()
    }

    waitGroup.Wait()
}

This is the simplest code I could build to reproduce the error. This code runs fine on my local machine (Ubuntu 20.04), but throws a fatal error: runtimer: bad p in the golang:1.15 docker container. It only happens if the code is built on the docker container. Building it locally then copying to the docker container doesn't trigger the issue, so it could be related to the version of shared libs on the distro. Adding apt upgrade -y to the Dockerfile didn't help.
It happens regardless of what kernel it's built on. Same thing happens on an amazon linux 2 ~4.14 machine.
I was doing *ticker = *time.NewTicker(timeout) instead of ticker = time.NewTicker(timeout) because the reset was happening inside a function call. Workaround was to reorganize so that it returns the reset ticker instead. Go 1.15 also introduces the Ticker.Reset function so that can be used moving forward (the existing codebase is on 1.14), but wanted to report this issue in case it helps someone else who runs into a similar issue, or it's evidence of something else going on.
What did you expect to see?
The program run and reset the ticker for the next iteration.
What did you see instead?
fatal error: runtimer: bad p

runtime stack:
runtime.throw(0x488b61, 0xf)
	/usr/local/go/src/runtime/panic.go:1116 +0x72
runtime.runtimer(0xc00001c000, 0x162b8b19476c8, 0x7f7bdaebe108)
	/usr/local/go/src/runtime/time.go:751 +0x28c
runtime.checkTimers(0xc00001c000, 0x162b8b19476c8, 0x162b8b05efb89, 0x0, 0x0)
	/usr/local/go/src/runtime/proc.go:2782 +0x12c
runtime.findrunnable(0xc00001c000, 0x0)
	/usr/local/go/src/runtime/proc.go:2206 +0x8c5
runtime.schedule()
	/usr/local/go/src/runtime/proc.go:2683 +0x2d7
runtime.park_m(0xc000001380)
	/usr/local/go/src/runtime/proc.go:2851 +0x9d
runtime.mcall(0x0)
	/usr/local/go/src/runtime/asm_amd64.s:318 +0x5b

goroutine 1 [semacquire]:
sync.runtime_Semacquire(0xc000018048)
	/usr/local/go/src/runtime/sema.go:56 +0x45
sync.(*WaitGroup).Wait(0xc000018040)
	/usr/local/go/src/sync/waitgroup.go:130 +0x65
main.testTicker()
	/go/src/app/test_timer.go:32 +0x95
main.main()
	/go/src/app/test_timer.go:9 +0x25

goroutine 5 [chan receive]:
main.testTicker.func1(0xc000018040)
	/go/src/app/test_timer.go:24 +0x85
created by main.testTicker
	/go/src/app/test_timer.go:17 +0x78

goroutine 6 [chan receive]:
main.testTicker.func1(0xc000018040)
	/go/src/app/test_timer.go:24 +0x85
created by main.testTicker
	/go/src/app/test_timer.go:17 +0x78

goroutine 7 [chan receive]:
main.testTicker.func1(0xc000018040)
	/go/src/app/test_timer.go:24 +0x85
created by main.testTicker
	/go/src/app/test_timer.go:17 +0x78

Smaller reproduction
package main

import (
        "time"
)

func main() {
        testTicker()
}

func testTicker() {
        const N = 3 // larger numbers trigger panic more reliably
        for i := 0; i <= N; i++ {
                go func() {
                        timeout := 10 * time.Millisecond
                        ticker := time.NewTicker(timeout)

                        for {
                                select {
                                case <-ticker.C:
                                        ticker.Stop()
                                        *ticker = *time.NewTicker(timeout)
                                }
                        }
                }()
        }

        select {}
}

I'm almost certain that *ticker = *time.NewTicker(timeout) is the culprit, but the race detector doesn't seem to complain -- or the program crashes before it can open its mouth.

Oh, yeah, I've had many iterations of this code. *ticker = *time.NewTicker(timeout) is the only constant. Thanks for removing the waitgroup here, I was going to do that and forgot.
Also, not sure what the playground is running on, but I just tried it and it blows up there too: https://play.golang.org/p/SrcOyRpdncx

*ticker = *time.NewTicker(timeout)

why do you want to overwrite the destination of the ticker pointer with a copy of the results of NewTicker? Why doesn't ticker = time.NewTicker(timeout) work for you?

Because I was originally passing the ticker into another function that had logic to determine if the ticker needed to be reset at a certain point. It was working locally so I didn't think anything of it, then it started crashing on staging and it took a while to track down that that was the issue.
I've reorganized the code and the function can now return the updated ticker instead of overwriting it.
But I wanted to report the issue as it was difficult to track down, being environment specific. If it's not something that needs fixing (especially with the ticker.Reset option in newer versions), it could be worth documenting at least.

If it's not something that needs fixing (especially with the ticker.Reset option in newer versions), it could be worth documenting at least.

It already is: if you have a data race in your program, all bets are off. It's not unique to time.Ticker.
https://blog.golang.org/race-detector

Sorry, you can't use time.Ticker in this way.  The time.Ticker type has internal information that this code is clobbering.  It's true that this got worse in the 1.14 release, but it was never supported.  I'm going to close this issue because I don't think there is anything we can change to fix it.  Please comment if you disagree.


Refactor FogVolume, VoxelGI, ReflectionProbe code

Fix #54449

I accidentally left an incomplete change in one file that invalidated the tests, could they be restarted please? I'm not familiar with this process.

I accidentally left an incomplete change in one file that invalidated the tests, could they be restarted please? I'm not familiar with this process.

Also, is force-pushing the right way to apply a fix to my pull request?

Yes :slightly_smiling_face:

I accidentally left an incomplete change in one file that invalidated the tests, could they be restarted please? I'm not familiar with this process.

Also, is force-pushing the right way to apply a fix to my pull request?

Yes, as it's the only way to ensure your PR continues to contain a single commit (rather than several) slightly_smiling_face

Thank you, that makes sense  (;

Why was size chosen instead of extents though? Just wondering.

Why was size chosen instead of extents though? Just wondering.

See #54449 (probably there are other related issues as well) - in Godot 3 many of the 3D nodes with a concept of size (as a Vector3) utilised an extents property which was essentially half the actual size - so a MeshInstance with extents (1,2,1.5) took up 2×4×3 units of space. In Godot 4 the API and UI is being mostly standardised to use a size property instead, which is the actual size (or double the value of extents).
I'm not really refactoring apart from applying some of this standardisation now so that compatibility doesn't have to be broken later.

Looks mostly good! Just a few problems to iron out.
For future reference, it looks like there was agreement to expose size to users instead of extents but to use extents internally where it makes sense (Comment from Akien here)

Thanks, I knew there'd probably be a few issues with my changes - I did my best to understand everything I was dealing with but had trouble with some of it  (;
I'll start working on a fix soon.

Why does it say this? Did I accidentally pull in someone else's commit, and if so, does it matter?

I just realised that after using --doctool (thinking it would update the docs and so prevent the unit tests failing due to being outdated by my changes), the quality of the offline documentation has largely been decreased. I'll push a fix for this later; until then, don't worry about the newly missing bits, I wasn't actually intending to remove things like descriptions.

@clayjohn Sorry, could you help me with the conflicts please? I don't really understand what's gone wrong, and can't seem to fix it.

It looks like in rebasing you have picked up changes from unrelated PRs. Can you undo the changes that are not relevant to this PR?

You're right... I'm just going to delete this branch and copy the relevant changes across. I've tried several times now to fix it and every time it somehow gets more convoluted.

Superseded by https://github.com/godotengine/godot/pull/55178.


[Regression](multi catalog)P2 regression case for external hms catalog on emr.

Proposed changes
Issue Number: close #xxx
Problem summary
Regression cases for external hms catalog. Cases are copied from doris p2 cases:
yandex
brown
github_events
Checklist(Required)

Does it affect the original behavior:

[ ] Yes
[ ] No
[ ] I don't know

Has unit tests been added:

[ ] Yes
[ ] No
[ ] No Need

Has document been added or modified:

[ ] Yes
[ ] No
[ ] No Need

Does it need to update dependencies:

[ ] Yes
[ ] No

Are there any changes that cannot be rolled back:

[ ] Yes (If Yes, please explain WHY)
[ ] No

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 34.74 seconds
load time: 628 seconds
storage size:<PHONE_NUMBER>4 Bytes
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20221218103041_clickbench_pr_64735.html


DF: fix recursion in allocation

DF: fix recursion in allocation

/intelci: run

no fall in nightly on win http://intel-ci.intel.com/eab20bc8-ad5b-f146-9b21-8cdcd4b723a1


Support where in sequential_values

This is a:

[ ] bug fix PR with no breaking changes — please ensure the base branch is master
[x] new functionality — please ensure the base branch is the latest dev/ branch
[ ] a breaking change — please ensure the base branch is the latest dev/ branch

Description & motivation
As some schema tests support where, it would be good to support it in sequential_values.
Checklist

[ ] I have verified that these changes work locally on the following warehouses (Note: it's okay if you do not have access to all warehouses, this helps us understand what has been covered)

[ ] BigQuery
[ ] Postgres
[ ] Redshift
[ ] Snowflake

[ ] I have "dispatched" any new macro(s) so non-core adapters can also use them (e.g. the star() source)
[x] I have updated the README.md (if applicable)
[x] I have added tests & descriptions to my models (and macros if applicable)
[ ] I have added an entry to CHANGELOG.md

Hey @yu-iskw, did you know that in dbt 0.20.0 all tests get where for free? Is this PR designed to do something beyond the inbuilt functionality?

I didn't know that. That's why it wasn't implemented. Thank you for letting me know. I will close it.


cannot install it with pip3

Hello!
For some reason I cannot install this via pip3:
Collecting Dtls   Downloading https://files.pythonhosted.org/packages/06/bb/dcd7fd37b109b7b63d9fec5c5a25f5842e699e864a0c10ca8448c6bb1f04/Dtls-1.2.0.tar.gz (79kB)     100% |████████████████████████████████| 81kB 1.2MB/s      Complete output from command python setup.py egg_info:     Traceback (most recent call last):       File "<string>", line 1, in <module>       File "/tmp/pip-build-wclkc1_6/Dtls/setup.py", line 53, in <module>         long_description = open("README.md").read()     FileNotFoundError: [Errno 2] No such file or directory: 'README.md'
Mebus

It is developed for python 2. I am trying to use It under python3 too

Look for python3-dtls


csv

i can't the csv export functionality isn't working well is there a way to fix it

csv not working


SecretEnv not working in Template

Pre-bug-report checklist
1. This bug can be reproduced using pure Argo YAML

[ ] Yes 👉 Please report a bug to the Argo Workflows GitHub 👈
[X] No

If yes, it is more likely to be an Argo bug unrelated to Hera. Please double check before submitting an issue to Hera.
2. This bug occurs in Hera when...

[X] exporting to YAML
[ ] submitting to Argo
[ ] running on Argo with the Hera runner
[ ] other:

Bug report
Describe the bug
When using SecretEnv in a Template, it is not expanded and the resulting entry in env only contains the name.
To Reproduce
Full Hera code to reproduce the bug:
from hera.workflows import (
    Container,
    Env,
    SecretEnv,
    WorkflowTemplate,
)
from hera.workflows.models import Template

whalesay = Container(
    image="docker/whalesay:latest",
    command=["cowsay"],
    env=[
        Env(name="test", value="1"),
        SecretEnv(name="s1", secret_key="s1", secret_name="abc"),
    ],
)
templates = [Template(name="test", container=whalesay)]
wt = WorkflowTemplate(name="test", templates=templates)
print(wt.templates[0].container.env)

Results:
[EnvVar(name='test', value='1', value_from=None), EnvVar(name='s1', value=None, value_from=None)]

Expected behavior
SecretEnv should be expanded into EnvVar that it's value_from property is populated.
Environment

Hera Version: 5.15.1
Python Version: 3.10.13
Argo Version: 3.5.6

@roeizavida Hi, if workflow or workflowtemplate is used with proper syntax, it seems working as expected. Can you check this issue again?
You can check the example in here: https://hera-workflows.readthedocs.io/en/latest/examples/workflows/misc/init_containers_with_env/
with Workflow(name="test") as wt:
    Container(
        image="docker/whalesay:latest",
        command=["cowsay"],
        env=[
            Env(name="test", value="1"),
            SecretEnv(name="s1", secret_key="s1", secret_name="abc"),
        ],
    )
print(wt.to_yaml())

output:
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  name: test
spec:
  templates:
  - container:
      command:
      - cowsay
      env:
      - name: test
        value: '1'
      - name: s1
        valueFrom:
          secretKeyRef:
            key: s1
            name: abc
      image: docker/whalesay:latest


Update cats-core to 2.9.0

Updates org.typelevel:cats-core from 2.8.0 to 2.9.0.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.typelevel", artifactId = "cats-core" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "@monthly" },
  dependency = { groupId = "org.typelevel", artifactId = "cats-core" }
}]

labels: library-update, early-semver-minor, semver-spec-minor, commit-count:1

Codecov Report
Base: 89.97% // Head: 89.97% // No change to project coverage :thumbsup:

Coverage data is based on head (ea7f900) compared to base (f4284a6).
Patch has no changes to coverable lines.

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #281   +/-   ##
=======================================
  Coverage   89.97%   89.97%
=======================================
  Files          31       31
  Lines         908      908
  Branches       34       34
=======================================
  Hits          817      817
  Misses         91       91

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

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Flash external flash using LittleFS (IDFGH-4564)

Hi,
Recently i discovered that spiffs read speed for external flash are a bit slow for my usage. So i am doing some poc if littlefs fix the issue but having roadblock to proceed.
I successfully flash the internal flash of my esp32 bin file but not be able to flash external flash using the generated bin using mklittlefs. I am successfully doing the same using mkspiffs though.
mklittlefs.exe -c data --size 16777216 --page 256 --block 4096 ext-spiffs.bin
esptool.py --chip esp32 --port com6 --baud 115200 write_flash 0x0 ext-spiffs.bin --flash_mode dio --flash_size 16MB --spi-connection 18,19,23,21,5
esptool.py v3.1-dev
Serial port com6
Connecting........_
Chip is ESP32-D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 24:6f:22:c3:a3:54
Uploading stub...
Running stub...
Stub running...
Configuring SPI flash mode...
Configuring flash size...
Auto-detected Flash size: 16MB
Compressed 16777216 bytes to 499494...
Writing at 0x00004000... (6 %)
A fatal error occurred: Timed out waiting for packet header
any help for me to investigate further or any support by espressif for little fs?

Hi @tsctrl. Please try again with the latest version from https://github.com/espressif/esptool or the --no-compress argument.

Hi @tsctrl. Please try again with the latest version from https://github.com/espressif/esptool or the --no-compress argument.

(To give a bit of extra context:
The issue is probably that the littlefs bin file is very compressible, and the timeout for a single compressed packet is too short for the amount of uncompressed data that it contains. The esptool master branch contains a fix for this that was recently added, but we haven't add it to ESP-IDF yet. @dobairoland proposes either pulling the latest master commit of esptool (which should set the timeout correctly), or passing the --no-compress argument which will be slower to flash but works around the compression issue.)

(To give a bit of extra context:
The issue is probably that the littlefs bin file is very compressible, and the timeout for a single compressed packet is too short for the amount of uncompressed data that it contains. The esptool master branch contains a fix for this that was recently added, but we haven't add it to ESP-IDF yet. @dobairoland proposes either pulling the latest master commit of esptool (which should set the timeout correctly), or passing the --no-compress argument which will be slower to flash but works around the compression issue.)

Hi @tsctrl,
Did you get a chance to retry this? It should work with the latest master branch of ESP-IDF and/or esptool.
Angus

Hi All,
ya. need to use --no-compress to flash successfully. i am not really agree with the "very compressible" part.
i have to wait few minutes for the flash to complete.?
no chance to retest for now on the latest esptool/IDF. need to revisit the POC. will update soon

Still having issue:
without --no-compress
`
esptool --chip esp32 --port com6 --baud 115200 write_flash 0x0 ext-spiffs.bin --flash_mode dio --flash_size 16MB --spi-connection 18,19,23,21,5
esptool.py v3.0
Serial port com6
Connecting...............
Chip is ESP32-D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 24:6f:28:c3:a5:e4
Uploading stub...
Running stub...
Stub running...
Configuring SPI flash mode...
Configuring flash size...
Compressed 16777216 bytes to 1456042...
Wrote 16777216 bytes (1456042 compressed) at 0x00000000 in 196.2 seconds (effective 684.2 kbit/s)...
File  md5: ad7b3998fcc208ba1a152a49b5a75f49
Flash md5: a0060da309921f9f2ce2f71dc4ab7ff2
MD5 of 0xFF is d5929b7a5ad99f511fc83d7d0b48b85f
A fatal error occurred: MD5 of file does not match data in flash!
`
with --no-compress success flashing in around 30 minutes
`
esptool --chip esp32 --port com6 --baud 115200 write_flash 0x0 ext-spiffs.bin --flash_mode dio --flash_size 16MB --spi-connection 18,19,23,21,5 --no-compress
esptool.py v3.0
Serial port com6
Connecting........_
Chip is ESP32-D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 24:6f:28:c3:a5:e4
Uploading stub...
Running stub...
Stub running...
Configuring SPI flash mode...
Configuring flash size...
Wrote 16777216 bytes at 0x00000000 in 1521.6 seconds (88.2 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
`

@tsctrl You are using now an even older version of esptool than in the first report. Please clone the https://github.com/espressif/esptool repo and try the latest master from there. The related change is very new and haven't been released yet.

master branch:
esptool --chip esp32 --port com6 --baud 115200 write_flash 0x0 ext-spiffs.bin --flash_mode dio --flash_size 16MB --spi-connection 18,19,23,21,5
'esptool' is not recognized as an internal or external command,
operable program or batch file.
C:\Development\jam-waktu-solat\esp32-jws-espressif-idf>esptool.py --chip esp32 --port com6 --baud 115200 write_flash 0x0 ext-spiffs.bin --flash_mode dio --flash_size 16MB --spi-connection 18,19,23,21,5
esptool.py v3.1-dev
Serial port com6
Connecting......
Chip is ESP32-D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
WARNING: Detected crystal freq 41.01MHz is quite different to normalized freq 40MHz. Unsupported crystal in use?
Crystal is 40MHz
MAC: 24:6f:28:c3:a5:e4
Uploading stub...
Running stub...
Stub running...
Configuring SPI flash mode...
Configuring flash size...
Compressed 16777216 bytes to 1456042...
Writing at 0x00ae0fe7... (49 %)
A fatal error occurred: Timed out waiting for packet header

to add more:
now the write checksum does not match
esptool.py --chip esp32 --port com6 --baud 115200 write_flash 0x0 ext-spiffs.bin --flash_mode dio --flash_size 16MB --spi-connection 18,19,23,21,5 --no-compress
esptool.py v3.1-dev
Serial port com6
Connecting........_
Chip is ESP32-D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 24:6f:28:c3:a5:e4
Uploading stub...
Running stub...
Stub running...
Configuring SPI flash mode...
Configuring flash size...
Wrote 16777216 bytes at 0x00000000 in 1492.3 seconds (89.9 kbit/s)...
File  md5: ad7b3998fcc208ba1a152a49b5a75f49
Flash md5: d2f5cd7676a765ea9adf5f9c4d462b54
MD5 of 0xFF is d5929b7a5ad99f511fc83d7d0b48b85f

A fatal error occurred: MD5 of file does not match data in flash!

when i try to use mkspiffs to create bin files i am getting write issue.
mkspiffs.exe -c data -s 16777216 -p 256 -b 4096 ext-spiffs.bin
/web/assets/lib/i18n/locale/en.json
SPIFFS_write error(-10010): unknown
error adding file!
Error for adding content from locale!

i think this is because the folder length name to long. Is there a way to resolve this issue? do fatfs can resolve and do fatfs now supported in esptools? @petermccloud @projectgus

tried using spiffsgen
spiffsgen.py --page-size 256 --block-size 4096 --obj-name-len<PHONE_NUMBER>6 C:\Development\jam-waktu-solat\esp32-jws-espressif-idf\main ext-spiffs.bin

with the same issue:
esptool.py --chip esp32 --port com6 --baud 115200 write_flash 0x0 ext-spiffs.bin --flash_mode dio --flash_size 16MB --spi-connection 18,19,23,21,5
esptool.py v3.1-dev
Serial port com6
Connecting........_
Chip is ESP32-D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 24:6f:28:c3:a5:e4
Uploading stub...
Running stub...
Stub running...
Configuring SPI flash mode...
Configuring flash size...
Compressed 16777216 bytes to 47404...
Wrote 16777216 bytes (47404 compressed) at 0x00000000 in 142.2 seconds (effective 943.9 kbit/s)...
File  md5: 4ae326e5ea9422b98e59682cb365faae
Flash md5: eae0cefe4a74fd42e447b0b00563d4ea
MD5 of 0xFF is d5929b7a5ad99f511fc83d7d0b48b85f

Hi @dobairoland ,
i made a little progress today.  for the flash issue it is actually because of bad cabling. the fix is actually works and the flash are faster without --no-compress.
below is the summary of the flashing logs:
esptool.py --chip esp32 --port com6 --baud 115200 write_flash 0x0 ext-spiffs.bin --flash_mode dio --flash_size 16MB --spi-connection 18,19,23,21,5
esptool.py v3.1-dev
Serial port com6
Connecting........_____.
Chip is ESP32-D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 24:6f:28:c3:a5:e4
Uploading stub...
Running stub...
Stub running...
Configuring SPI flash mode...
Configuring flash size...
Compressed 16777216 bytes to 1458781...
Wrote 16777216 bytes (1458781 compressed) at 0x00000000 in 201.4 seconds (effective 666.5 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

i actually end up buying internal 16MB chips from espressif today, will still using little fs as it 3 time faster than the spiffs and will use fatfs with sd for future proofing. closing this issue.
Thank you for you time and support!


test_lightcurve_fitting.py failing because of change to ExponentialModel name

When I ran
pytest
to test my Eureka! installation, I got the following error message:
AttributeError: module 'eureka.S5_lightcurve_fitting.models' has no attribute 'ExponentialModel'
(out of the 10 tests, it is the only one that failed).

I found in models/ the ExpRampModel model that seems to do what we would expect of an exponential model (with the coefficients), and updated test_exponentialmodel() definition in test_lightcurve_fitting.py according to how the model is defined in models/.
When running pytest again, everything seems to run smoothly now!
I will submit a pull request for this small edit

Thanks for catching this, Caroline, I think it's technically my responsibility! I just pulled down the most recent version and verified the issue exists, but I've got some other problem which makes the straight substitution fail. I'll bring this up in the meeting today.

Thanks for catching this, @cpiaulet! I think it's technically my responsibility to fix the tests. I just pulled down the most recent version and verified the issue exists, but I've got some other problem which makes the straight substitution fail. I'll bring this up in the meeting today.

Actually, this is fine and I see Kevin already approved the PR. That can go ahead and get merged!

I'm going to merge the PR now and close this issue.


Reproducing PPO-PickCubeV0-rgbd with Error

Hello, I'm trying to reproduce the dapg + PickCubev0 + rgbd experiment follow the examples.
My ManiSkill2-Learn branch is main, and ManiSkill version is v0.5.0
I firstly generate the data using the scrips ManiSkill2-Learn/scripts/example_demo_conversion/pick_place_single_object_env.sh with no change, then I run the follow scripts:
python maniskill2_learn/apis/run_rl.py configs/mfrl/dapg/maniskill2_rgbd.py \
             --work-dir ${LOG_DIR} --dev --gpu-ids ${GPU_ID}  \
             --cfg-options "env_cfg.env_name=PickCube-v0" "env_cfg.obs_mode=rgbd" \
             "env_cfg.control_mode=pd_ee_delta_pose" \
             "rollout_cfg.num_procs=12" "env_cfg.reward_mode=dense" \
             "agent_cfg.demo_replay_cfg.buffer_filenames=../ManiSkill/v0/demos/rigid_body/PickCube-v0/trajectory.none.pd_ee_delta_pose_rgbd.h5" \
             "eval_cfg.num=100" "eval_cfg.save_traj=True" "eval_cfg.save_video=True" \
             "train_cfg.total_steps=25000000" "train_cfg.n_checkpoint=1000000" "train_cfg.n_eval=1000000"

but I got:
assert key in self.demo_replay.memory, f"DAPG needs {key} in your demo!"
I found the self.demo_replay.memory is empty, how can I fix it?

Are the files non-empty after running https://github.com/haosulab/ManiSkill2-Learn/blob/main/scripts/example_demo_conversion/pick_place_single_object_envs.sh ?

I realized that we had the wrong path. Training is now proceeding correctly, and we are currently awaiting the results. Thank you very much for your response!


add new restart operation lock to avoid emitting needless stop/start events

Part of #8010

This pull request didn't trigger Jenkins as its author isn't in the whitelist.
An organization member must perform one of the following:

To have this branch tested by Jenkins, use the "ok to test" command.
To have a one time test done, use the "test this please" command.

Those commands are simple Github comments of the format: "jenkins: COMMAND"

Looks good, rebased it down to a single commit, now let's see if jenkins is happy.

jenkins: test this please

Looks like this branch is breaking standard restarts (lxc restart NAME) somehow?

jenkins: test this please

Thanks for your work!


Support short channel matching

On julia you can do --start=no to control --startup-file=no because there's no other arg that matches --start
It would be nice if juliaup did the same for channel names
So julia +n for nightly. julia +r for release. etc.

Sure, as long as it's only the words that are matched, not the version numbers (see https://github.com/JuliaLang/juliaup/pull/838#issuecomment-2206640506)

First of all, sorry that I didn't chime in on this for so long, especially to the two PR authors.
I thought about it, and I have to admit, I'm not a fan of any auto-matching solution. I think what would we could consider instead is support for channel aliases, and I think they could cover this case here, plus be more powerful overal.
The idea would be that one could do something like juliaup alias create r release to create an alias named r for the channel release. And then we would also need correspondingly juliaup alias remove and probably juliaup alias status or something like that.
Or maybe we could extend the existing link command to cover this, for example juliaup link r +release. Maybe that would actually be the nicest solution.

I also think that aliases would be the best approach here.


Adjust examples to automatic .wasm file detection for the no-modules target

Follow-up for #3169.
I couldn't really try it because I can't get wasm-pack to work for me.

@Liamolucko friendly ping.


[sw/silicon_creator] Add OTBN ROM driver

Adds an OTBN driver implementation with unittests. This driver is heavily based off of sw/device/lib/dif/dif_otbn*, introduced in commit 1c7cf8f8d24e ("[otbn] Initial DIF") with slimmed down error checking and irq, init, and restart routines pruned.

@cfrantz Can you PTAL at this review?

Thanks for the detailed reviews! I believe I've addressed all of your comments and added some things of note

Changed all functions taking void * types to now take uint32_t * to naturally solve some alignment concerns.
Remaining alignment checks waiting on #6112 before removing mod operator
Added assertions for error values
Removed functions that returned constant values and replaced them with constants.
Restructured unittests to match guidelines


Add NetworkSecurityPerimeterConfigurations Swagger

ARM API Information (Control Plane)
MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Azure 1st Party Service can try out the Shift Left experience to initiate API design review from ADO code repo.  If you are interested, may request engineering support by filling in with the form https://aka.ms/ShiftLeftSupportForm.
Changelog
Add a changelog entry for this PR by answering the following questions:

What's the purpose of the update?

[ ] new service onboarding
[ ] new API version
[x] update existing version for new feature
[ ] update existing version to fix swagger quality issue in s360
[ ] Other, please clarify

When are you targeting to deploy the new service/feature to public regions? Please provide the date or, if the date is not yet available, the month. ASAP
When do you expect to publish the swagger? Please provide date or, the the date is not yet available, the month. No rush as feature is still in testing
By default, Azure SDKs of all languages (.NET/Python/Java/JavaScript for both management-plane SDK and data-plane SDK, Go for management-plane SDK only ) MUST be refreshed with/after swagger of new version is published. If you prefer NOT to refresh any specific SDK language upon swagger updates in the current PR, please leave details with justification here.

Contribution checklist (MS Employees Only):

[x] I commit to follow the Breaking Change Policy of "no breaking changes"
[x] I have reviewed the documentation for the workflow.
[x] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

Applicability: :warning:
If your changes encompass only the following scenarios, you should SKIP this section, as these scenarios do not require ARM review.

Change to data plane APIs
Adding new properties
All removals

Otherwise your PR may be subject to ARM review requirements. Complete the following:

[x] Check this box if any of the following apply to the PR so that the label "ARMReview" and "WaitForARMFeedback" will be added by bot to kick off ARM API Review.  Missing to check this box in the following scenario may result in delays to the ARM manifest review and deployment.

Adding a new service
Adding new API(s)
Adding a new API version
-[x] To review changes efficiently, ensure you copy the existing version into the new directory structure for first commit and then push new changes, including version updates, in separate commits. You can use OpenAPIHub to initialize the PR for adding a new version. For more details refer to the wiki.

[x] Ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If you have any breaking changes as defined in the Breaking Change Policy, request approval from the Breaking Change Review Board.
Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Additional details on the process and office hours are on the Breaking Change Wiki.
NOTE: To update API(s) in public preview for over 1 year (refer to Retirement of Previews)
Please follow the link to find more details on PR review process.

please fix these lintdiff issues:

❌ LroLocationHeader
A 202 response should include an Location response header.Location: Microsoft.Sql/preview/2022-11-01-preview/NetworkSecurityPerimeterConfigurations.json#L143
RPC-Async-V1-07

❌ XmsIdentifierValidation
Missing identifier id in array item propertyLocation: Microsoft.Sql/preview/2022-11-01-preview/NetworkSecurityPerimeterConfigurations.json#L211

❌ XmsIdentifierValidation
Missing identifier id in array item propertyLocation: Microsoft.Sql/preview/2022-11-01-preview/NetworkSecurityPerimeterConfigurations.json#L310

left comments in your DSMainDev PR

Please fix these lintdiff issues manually in swagger file:
❌ XmsIdentifierValidation | Missing identifier id in array item propertyLocation: Microsoft.Sql/preview/2022-11-01-preview/NetworkSecurityPerimeterConfigurations.json#L211 |   ❌ XmsIdentifierValidation | Missing identifier id in array item propertyLocation: Microsoft.Sql/preview/2022-11-01-preview/NetworkSecurityPerimeterConfigurations.json#L310
we have the x-ms-identifier tag/attribute in DSmainDev, but due to our .NET client version for unit tests in DSMainDev is very old. It will trigger unit test clients generation failure. Thus, we turn off them.

for rest of them, we could ask for exception.

We will fix the following lintDiff errors in sql swagger generation code:

ResourceNameRestriction
LroLocationHeader

@raych1 - this PR is ready for review and merge, please.

@raych1 do we know the impact if we set up the ResourceNameRestriction?

Rule
Message
Related RPC [For API reviewers]

❌ ResourceNameRestriction
The resource name parameter 'serverName' should be defined with a 'pattern' restriction.Location: Microsoft.Sql/preview/2022-11-01-preview/NetworkSecurityPerimeterConfigurations.json#L19

Will the ARM side refuse all the requests which do not comply with the ResourceNameRestriction def?
Will the downstream clients generate code that refuses all the parameters which do not comply with the ResourceNameRestriction def?


npm install failure

Bug report
Describe the bug
The npm install is not successful.
To Reproduce
hugo@folder % npx @snaplet/snapshot setup Need to install the following packages<EMAIL_ADDRESS>Ok to proceed? (y) y npm WARN deprecated<EMAIL_ADDRESS>Package name 'postgresql-client' has been changed to 'postgrejs'. Please consider to update dependencies in your package.json
Expected behavior
The end of the installation process.
System information

OS: macOs
Version of supabase-js: Not applicable (not at this stage)
Version of Node.js: 21.7.3

Have you tried Node 20?

This is happening on Node 22, which is now LTS.


evm-subql genesisHash mismatch

Any ideas why this?
2022-08-17T13:27:55.280Z <configure> WARN Note that argument --local has been deprecated
2022-08-17T13:27:55.489Z <indexer> INFO indexer manager start
2022-08-17T13:27:55.769Z <api> ERROR Network chainId doesn't match expected genesisHash. expected="0xbaf5aabe40646d11f0ee8abbdc64f4a4b7674925cba08e4a05ff9ebed6e2126b" actual="0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe

ah, i pointed it at the kusama endpoint, not the karura one.


Updated Appearance settings text

Updated the labels and descriptions for the checkbox options in the Appearance tab of Settings UI.

Thank you @justo78, my apologies it took so long before I merged your PR!

No drama. Thanks for accepting the PR.
And thanks for maintaining this product. I plan to use it in a demo at Google I/O this year.
Don't know what I'd do without it.


Feat: Total Margin tab on Dashboard

Subject of the issue
When traders have margin deposited into different markets, it is difficult to track the total amounts/margins of each market they have something deposited in. At the moment, this data is shown when clicking on the sUSD widget in the navigation bar, however this is counter-intuitive.
Design
Figma: https://www.figma.com/file/R9dygkd4HBA7PdxtE3iLis/External?node-id=141%3A409

Deliverables

[ ] Rename "Futures Positions" to "Open Positions"
[ ] Add a new tab to the Dashboard for Total Margin
[ ] The tab should sum the total amount of margin currently deposited in all markets
[ ] Add a new table that lists all markets where traders currently have money deposited (similar to the table in the sUSD widget, see last screenshot at the bottom)
[ ] The table should list: Market, Total Margin, Available Margin, , and two Action buttons to immediately open the Withdraw/Deposit modals for the respective market
[ ] Make Margin, Total PnL and Total Trades sortable
[ ] The "Futures Position" tab USD value currently shows the total amount of margin in all markets, this should be updated to only show the total amount of margin currently involved in open positions. Example screenshot:

In the example, the dashboard lists the total margin in all markets (~288 USD), though the only open position in the example is ETH-PERP with a total margin of 95,27 USD at stake, so this amount should show rather than the total deposit of all markets.

Bounty
tbd

Irrelevant for now due to introduction of cross margin on dashboard


Fixes/openapi schema deduplication

Any idea why it was duplicated?

Yeah, I re-imported each of the KVK OpenAPI definition files (per domain; zoeken/basisprofiel/vestigingsprofiel/naamgeving). Some of the definitions within those had names that conflicted with each other. Those were then appended with -1. The -1 variants weren't automatically assigned to the endpoint where they should be, which caused issues in the model generation for some endpoints. This caused the Vestiging of the search response to not have its address properties mapped.


get rid of the https://grpc.io/release plague

Also see internal issue b/148844497
Generally the curl -L https://grpc.io/release subcommand does more harm than good

it makes the cmdline hard to read and obfuscates the real command
https://grpc.io/release requires maintenance: https://grpc.io/release is now way out of date which proves we continue forgetting to update it
it's not easy to figure out how the https://grpc.io/release file is updated (I didn't figure it out).

In short the https://grpc.io/release is harmful and we should get rid of it.

I'm not against this change in principle, but I wanted to point out that your second and third bullets are criticisms of our current release process, not of the release uri.
FWIW, it's actually defined here in the old site's repo, via a redirect in the new site. Personally, I'd prefer to just get rid of the redirect and make updating the tag on the new site a part of the release manager's document.

This was broken since the time grpc.io website was updated. We have been updating the document every release as it is part of the release process now and it not a big overhead to do that. See config.toml in grpc/grpc.io.  It shows:
[params]
grpc_release_tag = "v1.25.0"
grpc_release_tag_no_v = "1.25.0"
grpc_java_release_tag = "v1.26.0"
I am not totally convinced that this needs to go. I think this is a nice way to point to the latest stable release instead of asking users to replace RELEASE_TAG_HERE in various instructions. Beginners like to just cut and paste.

This should fix the redirect and break the dependency on the old site.

@gnossen  thanks for the fix.
@srini100  I understand that the idea is to make the commands copy-and-pastable, which is useful, but I think that the argument that the resulting command is not very readable (as a beginner, I can imagine being confused about what the subcommand $(curl -L ...) does).
Btw, on windows, the readability issue is much more apparent - the original command powershell git clone --recursive -b ((New-Object System.Net.WebClient).DownloadString(\"https://grpc.io/release\").Trim()) https://github.com/grpc/grpc is a real mess and completely hides the purpose of the command (which is to do a git clone; imagine trying to decode that as someone who is not super familiar with git, because they are used to a different version control).
Besides that, I'd understand if we used this "get the latest version" trick in one or two places in the repo (the actual getting started docs), but seeing it copy pasted in many different places that have a different (e.g. loadbalancing tutorial) focus seems off.
Btw, for the tutorials on grpc.io page, things work better because the page renders the right version number automatically - that a much better approach and it doesn't impose intellectual burden on the user.

@jtattermusch An alternate approach would be to start updating a mutable release tag on Github with each release. Then we could advertise git clone -b release https://github.com/grpc/grpc

@jtattermusch An alternate approach would be to start updating a mutable release tag on Github with each release. Then we could advertise git clone -b release https://github.com/grpc/grpc

I am not a fan of that either. None of the open source projects I know of does this.
This is definitely a question of taste, but I'm more in favor of a solution that requires no extra maintenance steps and is conceptually simple and completely transparent to the users, even though it might cost users one extra (trivial) manual step.
Another is argument is that anyone who's serious about using gRPC in a real project likely won't mind looking up what's the latest release version. Staying aware of the release notes and regularly checking if one should/shouldn't upgrade to the next release is something I'd recommend anyway. So I see pointing people to https://github.com/grpc/grpc/releases as something rather positive.

@srini100  grpc.io will stay the same in the sense that I will replace occurrences of the curlable link with a token that will be rendered directly into the page.
See PR https://github.com/grpc/grpc.io/pull/79 that does exactly that.


Can you explain configurations in config.json?

I really want to use the site and can you please explain the configurations in config.json. i only know about prefix and token.

Contact in discord.

Contact in Discord


Allow the summary selector to match multiple elements

All matched elements are used to generate the item description.
Closes #44

@doekman any chance you can test this out to see if it works for you?

I got Rust running on my computer. The whole process is friction free (wouldn't expect that from rust, LOL).
The results from all found nodes is included, but they always seems to appear in the DOM order. I would like when I change the order of the selectors, the found elements are also included in this order.
In my example: on the original website, an item first shows an image, and below the image are the title and play dates of the movie. I want to show the play dates first in the summary, and after that the image.
So summary = "img, div" should return
...
 and summary = "div, img" should return
...
.

Thanks for testing. I really appreciate that. For the comma based CSS syntax I don't have any control over the order they're matched, since it's done by a library and the behaviour matches browser behaviour. I expect that it traverses the DOM tree and checks if the selector matches (regardless of selector order), yielding matching elements as they are found.
I think in order to support what you need the summary value will need to be able to accept a string or an array of strings so something like:
summary = ["div", "img"]

and rsspls will make a pass through the document for each selector in the order they're defined.

I pushed another commit that allows using an array of selectors. @doekman does this allow you to achieve what you wanted? In your original example from #44 this would be specified as:
summary = ["div.jss61", "div img"]

Yes, works nicely. I also like the solution by using an array of selectors!


Add/update battle stations for ships

We're tracking the ship stations manually.  I'm not sure there's a way to retrieve them through API calls. For now, this is how we are dealing with them.

I had to add the Dove.  So I need a re-approval.


Allow to disable the use of sun.misc.Unsafe

Sometimes it can be helpful to disable the use of sun.misc.Unsafe. This is for example true if you run in a OSGI container as sun.misc.Unsafe is not exported normally. It also can help if you have a custom ClassLoader in place or try to run in a non oracle/sun jdk.

We are facing a native memory increase when using 4.1.59.Final version of netty and JDK 8 + vertx.
This increase is gradual. Via jemalloc we saw Unsafe#allocateMemory usage is on a higher side.
As we are using vertx + netty, we see high usage of Unsafe by netty. So what kind of impact will disable Unsafe do? i.e setting -Dio.netty.tryUnsafe=false. How much will be a performance impact?


Add prop-types for several components

Please check if I added those prop-types correctly.

There are some changes, but overall well done! 👍

Thank you so much! I've already solved the problems you mentioned in the comments. Please confirm them.

@YHhaoareyou Thanks for the changes! Some of them are still incorrect, so please fix them.

About.js, App.js, FetchedCourseListSearch.js, and FilterGroup.js seem to be updated by other contributors already, so I only modified CourseChunk.js and FilterButton.js. Please check my update, thank you!

Thanks @YHhaoareyou! I've merged your PR. Well done :D

@YHhaoareyou Thanks for your PR again. @all-contributors please add @YHhaoareyou for code.


On clusterLeave, notify only if there are peers

Otherwise operation will unnecessarely block
for five seconds.
This is particularly noticeable on graceful
shutdown of daemon in one node cluster.

Related to docker/docker/issues/32446

Is the error failed to send node leave: timed out broadcasting node event seen only in the single node case ?
Single node clusters are unlikely in real deployments and IMO, we shouldn't optimize for that.

I see your point, for clusters.
There sure are cases where a user might be using a single node swarm for feature development or testing. For those cases, I do not think the current is an acceptable behavior, considering this would delay things like service docker stop/restart, and docker swarm integration ci for that matter.

Single node clusters are unlikely in real deployments and IMO, we shouldn't optimize for that.

BTW, we are planning to change swarm mode to default to "on" in the future. The purpose will be to make features like services and secrets available without needing to run a special command first. This will make single-node installations very common.

@aaronlehmann thats a good point.
@sanimej  @aboch we have to consider the fact that single-node swarm-mode will be the most common case.

Is it possible to get this in for 17.05? It would be great to avoid the extra delay for graceful shutdowns.

@aboch  sendNodeEvent is an intentional blocking call till the event gets broadcasted. Its better to handle the special case inside of this function. Please add the check here before the wait https://github.com/docker/libnetwork/blob/master/networkdb/broadcast.go#L89.

Updated. PTAL.

LGTM


Tailscale will be not support MagicDNS

https://tailscale.com/kb/1081/magicdns#removing-the-betatailscalenet-nameserver

This use tailnet name.
MagicDNS not effect to get tailnet name


Proposal: add a section on decentralised communication methods

Thank you for creating this repository! I've been using it heavily over the past weeks.
Recently, I came across https://kyiv.dcomm.net.ua/ which is a resource on decentralised messaging apps, how to set them up and how to connect to local servers set up in a couple of Ukrainian cities.
Here's the original tweet that pointed me to it - https://twitter.com/CenoBrowser/status/1496897221891178499?s=20&t=2Vb9906YCOB1Q6nuvopNvA
I also found this statement from the company that set it all up - https://equalit.ie/war-in-ukraine/

Perhaps use misskey, plemora, mastodon, or another decentralized federated activitypub software.

Perhaps use misskey, plemora, mastodon, or another decentralized federated activitypub software. Just a thought.

Through this app http://en.kremlin.ru/, maybe


Sampling configuration neglected

Requirement - what kind of business use case are you trying to solve?
I want to configure sampling as described here https://www.jaegertracing.io/docs/1.17/sampling/
Problem - what in Jaeger blocks you from solving the requirement?
The configuration is neglected and I don't get any hints what I'm doing wrong.
Proposal - what do you suggest to solve the problem or improve the existing situation?
Jaeger should output currently used configuration on startup e.g.
Info: using sampling configuration /path/user/provided/file.json
Warn: sampling configuration /path/user/provided/file.json malformed
Something along those lines so I can see what's going on.
Any open questions to address
I use Jaeger in OpenShift to trace Java SpringBoot applications which is working great. I'll put our deployment config here so you can have a look if I do something obviously wrong.
---
parameters:
- description: The Jaeger image version to use
  displayName: Image version
  name: IMAGE_VERSION
  required: true
  value: "1.17.1"

kind: Template
apiVersion: v1
labels:
  app: jaeger
metadata:
  name: jaeger
  annotations:
    description: Jaeger Distributed Tracing Server
objects:
- kind: DeploymentConfig
  apiVersion: v1
  metadata:
    name: jaeger-collector
  spec:
    strategy:
      type: Rolling
    template:
      metadata:
        labels:
          name: jaeger-collector
      spec:
        containers:
        - name: jaeger-collector
          image: jaegertracing/jaeger-collector:${IMAGE_VERSION}
          args:
            - '--config-file=/conf/collector.yaml'
            - '--sampling.strategies-file=/sampling/sampling-strategies.json'
          ports:
          - containerPort: 14250
            protocol: TCP
          - containerPort: 14267
            protocol: TCP
          - containerPort: 14268
            protocol: TCP
          - containerPort: 14269
            protocol: TCP
          - containerPort: 9411
            protocol: TCP
          resources:
            requests:
              cpu: "100m"
              memory: "128M"
            limits:
              cpu: "1000m"
              memory: "2G"
          livenessProbe:
            tcpSocket:
              port: 14269
          readinessProbe:
            httpGet:
              path: "/"
              port: 14269
          volumeMounts:
          - name: jaeger-config-volume
            mountPath: /conf
          - name: jaeger-sampling-volume
            mountPath: /sampling
          env:
          - name: SPAN_STORAGE_TYPE
            value: elasticsearch
        volumes:
          - name: jaeger-config-volume
            secret:
              secretName: jaeger-secret
              items:
                - key: collector
                  path: collector.yaml
          - name: jaeger-sampling-volume
            configMap:
              name: jaeger-sampling-config
              items:
                - key: sampling-strategies.json
                  path: sampling-strategies.json
    replicas: 1
    triggers:
    - type: "ConfigChange"
- kind: DeploymentConfig
  apiVersion: v1
  metadata:
    name: jaeger-query
  spec:
    strategy:
      type: Rolling
    template:
      metadata:
        labels:
          name: jaeger-query
      spec:
        containers:
        - name: jaeger-query
          image: jaegertracing/jaeger-query:${IMAGE_VERSION}
          args: ["--config-file=/conf/query.yaml"]
          ports:
          - containerPort: 16686
            protocol: TCP
          - containerPort: 16687
            protocol: TCP
          resources:
            requests:
              cpu: "100m"
              memory: "128M"
            limits:
              cpu: "1000m"
              memory: "2G"
          readinessProbe:
            httpGet:
              path: "/"
              port: 16687
          volumeMounts:
          - name: jaeger-config-volume
            mountPath: /conf
          env:
          - name: SPAN_STORAGE_TYPE
            value: elasticsearch
        - name: jaeger-agent
          image: jaegertracing/jaeger-agent:${IMAGE_VERSION}
          args: ["--reporter.tchannel.host-port=jaeger-collector:14267"]
          ports:
          - containerPort: 6831
            protocol: UDP
          resources:
            requests:
              cpu: "100m"
              memory: "128M"
            limits:
              cpu: "1000m"
              memory: "2G"
        volumes:
          - name: jaeger-config-volume
            secret:
              secretName: jaeger-secret
              items:
                - key: query
                  path: query.yaml
    replicas: 1
    triggers:
    - type: "ConfigChange"

- kind: Service
  apiVersion: v1
  metadata:
    name: jaeger-collector
  spec:
    ports:
    - name: jaeger-collector-grpc
      port: 14250
      protocol: TCP
      targetPort: 14250
    - name: jaeger-collector-tchannel
      port: 14267
      protocol: TCP
      targetPort: 14267
    - name: jaeger-collector-http
      port: 14268
      protocol: TCP
      targetPort: 14268
    - name: jaeger-collector-metrics
      port: 14269
      protocol: TCP
      targetPort: 14269
    - name: jaeger-collector-zipkin
      port: 9411
      protocol: TCP
      targetPort: 9411
    selector:
      name: jaeger-collector

- apiVersion: v1
  kind: Service
  metadata:
    name: jaeger-query
  spec:
    ports:
    - name: jaeger-query-http
      port: 80
      protocol: TCP
      targetPort: 16686
    - name: jaeger-query-metrics
      port: 16687
      protocol: TCP
      targetPort: 16687
    selector:
      name: jaeger-query

- apiVersion: v1
  kind: Route
  metadata:
    name: jaeger-query
  spec:
    host: my-jaeger.host.org
    to:
      kind: Service
      name: jaeger-query
    port:
      targetPort: jaeger-query-http
    tls:
      insecureEdgeTerminationPolicy: Redirect
      termination: edge

- apiVersion: v1
  kind: Route
  metadata:
    name: jaeger-collector
  spec:
    to:
      kind: Service
      name: jaeger-collector
    port:
      targetPort: jaeger-collector-http
    tls:
      insecureEdgeTerminationPolicy: Redirect
      termination: edge

and this is the sampling configuration
{
    "service_strategies": [
    {
      "service": "testapp",
      "type": "probabilistic",
      "param": 0.0,
      "operation_strategies": [
        {
          "operation": "ok",
          "type": "probabilistic",
          "param": 0.0
        },
        {
          "operation": "query",
          "type": "probabilistic",
          "param": 0.0
        }
      ]
    }],
  "default_strategy": {
    "type": "ratelimiting",
    "param": 150,
    "operation_strategies": [
      {
        "operation": "/health",
        "type": "probabilistic",
        "param": 0.0
      },
      {
        "operation": "/metrics",
        "type": "probabilistic",
        "param": 0.0
      }
    ]
  }
}

@rdepke could you please paste here the sampling configuration file?

Sure  @pavolloffay
this is my sampling configuration which is very close to the config in the documentation example.
{
    "service_strategies": [
    {
      "service": "testapp",
      "type": "probabilistic",
      "param": 0.0,
      "operation_strategies": [
        {
          "operation": "ok",
          "type": "probabilistic",
          "param": 0.0
        },
        {
          "operation": "query",
          "type": "probabilistic",
          "param": 0.0
        }
      ]
    }],
  "default_strategy": {
    "type": "ratelimiting",
    "param": 150,
    "operation_strategies": [
      {
        "operation": "/health",
        "type": "probabilistic",
        "param": 0.0
      },
      {
        "operation": "/metrics",
        "type": "probabilistic",
        "param": 0.0
      }
    ]
  }
}

I add this to the origional post as well.

Hi Guys,
Is there any progress or solution related to this topic. I am experiencing the same issue as @rdepke, it looks like the strategies in the sampling config is not used.
Thanks


[API Proposal]:  Add .ctor(Span span)  to MemoryOwner

Title.
I would like to have the same behaviour as does MemoryRental<T> but I need it to out live a func-stackframe so it should be a normal non-ref struct, AFAIK MemoryRental<T> offers you the option to pass a  Span which is good, I need this exact for the MemoryOwner<T>.

MemoryOwner<T> is not a ref struct, therefore it can't have ref fields or fields of ref struct type. This is limitation of .NET GC. GC cannot track interior pointers located in the heap. Moreover, proposed change breaks compatibility. Use MemoryRental<T> instead. Probably, C# compiler prevents you from storing MemoryRental<T> as a field of regular class or struct. This is fine, because it may points to stack-allocated memory and this memory doesn't exist out of stackframe.
static MemoryRental<int> M()
{
   Span<int> span = stackalloc int[10];
   return new MemoryRental<int>(span); // how this should work?
}

In the same time MemoryOwner<T> is able to represent unmanaged memory allocated using NativeMemory class from .NET library. To do that, you can use UnmanagedMemoryAllocator class.

Copy method allows to make a copy of memory block and represent the copy as MemoryOwner<T> using any memory allocator.

Okay, good to know

MemoryOwner<T> is not a ref struct, therefore it can't have ref fields or fields of ref struct type. This is limitation of .NET GC. GC cannot track interior pointers located in the heap. Moreover, proposed change breaks backward compatibility. Use MemoryRental<T> instead. Probably, C# compiler prevents you from storing MemoryRental<T> in a field of regular class or struct. This is fine, because it may points to stack-allocated memory and this memory doesn't exist out of stackframe.
static MemoryRental<int> M()
{
   Span<int> span = stackalloc int[10];
   return new MemoryRental<int>(span); // how this should work?
}

Although you could allow it by [UnscopedRef] attribute over the respective function, to avoid the compiler error and call a Property:  public Span<T> Data => new Span(_ptr, _count) where _ptr is a T* inside your MemoryOwner<T> because I could then pass an X-Amount to use to allocate on stack, and internally ofc you can check if the requested Memory would overflow and then pass that to unmanaged or rent from pool. take a look:
[UnscopedRef]   //------------->important, to allow the stackalloc expression!
private MemoryOwner<byte> _pool { get; }

public MyStruct(int amount)
{
         //I think you can check internally, with "StackAllocThreshold" constant, if I can do this, if I cant then the entire `amount` will be used to rent from pool or unmamaged, however the choice, but if it does not exceed stacklimit, just use stackalloc
        _pool = new(stackalloc byte[amount]);
}

public void DoWork() =>//do smth with _pool!

_pool = new(stackalloc byte[amount]);

That is completely invalid, stack memory doesn't exist out of the method. You can crash the entire program with SIGTERM in attempt to access the memory.

UnscopedRef

It is invented to instruct the compiler that the enclosing interior pointer escapes the marked method or getter. Nothing more.

How then does it InlineArray(x) is it not the same stack space which is being allocated here with the same mechanics?

Another related question, when would you prefer to allocate Unmanaged rather to just renting from the pool? (except the request for pooling memory is to huge)

How then does it InlineArray(x) is it not the same stack space

Do you mean this feature? If yes, it's just a macro for JIT/AOT compiler. It follows the same rules as regular struct with copy semantics:
[System.Runtime.CompilerServices.InlineArray(3)]
public struct Buffer
{
    private int _element0;
}

// it's the same as
[StructLayout(LayoutKind.Sequential)]
public struct Buffer
{
    private int _element0, element1, element2;
}

When you trying to return Buffer or store it in a field, the compiler produces copy-by-value of the entire value type. No magic here.

Unmanaged rather to just renting from the pool?

Depends on the use case. Memory pooling can be a source of frequent full GC. For instance, you trying to decode binary data to base64, but don't know the size of that binary data (even approximately). In this case, unmanaged memory is better because you don't need to wait for full GC to release the memory back to the heap, and the memory block is less likely to be reused. If you know the size of the binary data approximately (or const which is ideal case), then use memory pooling. Once again,
stackalloc[32]; // 32 is const, this is a good use case for stackalloc
stackalloc[variable]; // still fine, if you known the upper bound of 'variable' and it's checked somewhere above explicitly
stackalloc[a * b]; // bad if 'a * b' never checked for its bounds. In this case, replace stackalloc with the memory allocated in the heap

Gotcha. Thanks.


Forecasting target series without out-of-sample dynamic features

Is there a way to forecast target series without dynamic features from the "future"? In my use case, multiple dynamic features feat_dynamic_real influence the target series. I had no issues creating the model, using make_evaluation_predictions and so on. Once I tried to do actual real-life forecasting my initial attempts were failing in VstackFeatures transformer (the np.vstack(r) invocation). I realized my feat_dynamic_real series are prediction_length short so I concluded they are necessary to do forecasting. However, in real-life, I will not have these values when doing forecasting! Am I doing something wrong? What are my options? Thanks in advance.

I found the answer. @benidis explained everything in his post here.

Is there a way to forecast target series without dynamic features from the "future"? In my use case, multiple dynamic features feat_dynamic_real influence the target series. I had no issues creating the model, using make_evaluation_predictions and so on. Once I tried to do actual real-life forecasting my initial attempts were failing in VstackFeatures transformer (the np.vstack(r) invocation). I realized my feat_dynamic_real series are prediction_length short so I concluded they are necessary to do forecasting. However, in real-life, I will not have these values when doing forecasting! Am I doing something wrong? What are my options? Thanks in advance.
I encountered the same problem. There was no 'feat_dynamic_real' characteristic in the prediction. If the make_evaluation_predictions() function is used to measure, the target length will be removed in the process, but predict() function will not. How can I solve this problem?

@QiuSYang  did you solve the problem cause after 3 years i have the same problem  there is a problem with the predict methode in my side but it work with the make_evaluation_prediction


Add Register Microsoft Container Instance with your Subscription to a…

…void ProviderFailed

Register Microsoft Container Instance with your Subscription
Add
nodeSelector:
kubernetes.io/hostname: virtual-kubelet-virtual-kubelet-win-YOUR-LOCATION

By default, the "Virtual Kubelet" hostname will container hostname "virtual-kubelet-virtual-kubelet-win-YOUR-LOCATION" or  "virtual-kubelet-virtual-kubelet-linux-YOUR-LOCATION" based on your resource group name

@adriantodorov : Thanks for your contribution! The author, @iainfoulds, has been notified to review your proposed change.

Sorry you ran into issues, @adriantodorov. The provider registration shouldn't be a required step here. In older versions of the Azure CLI or with certain Azure subscriptions it did come up, but now the provider should already be present and available for use with needing to register and wait for the registration to propagate.
I'd suggest checking the Azure CLI version in use (latest is 2.0.45, which the Azure Cloud Shell should stay current with) or filing an issue against Virtual Kubelet in case there's something in the logic of enabling the add-on that could be improved in these situations - https://github.com/virtual-kubelet/virtual-kubelet/issues
As this isn't something that should be a required call-out in the doc, #please-close


Fix compilation with Clang

Avoid passing GCC-specific flags to non-GCC $CC
Build with Clang on Darwin targets.
Fix a print format warning when an int is passed to format PRIu16

Ugh, broken if $(CC) = cc. Fix forthcoming.


Text can not be selected by mouse after enter filter word in leaderf.

vim or neovim?

[ ] vim
[x] neovim

Output of vim --version or nvim --version:
Output of :echo has("python"):
Output of :echo has("python3"):
Output of :echo &pythondll(only vim, not neovim):
Output of :echo &pythonthreedll(only vim, not neovim):
Output of :py print(sys.version):
Output of :py3 print(sys.version):
Output of :echo g:Lf_Debug_Cmd:
Output of :echo g:Lf_FilesFromCache:
Operating system:

[x] Linux
[ ] Mac OS X
[ ] Windows
[ ] Etc.

Configurations related to LeaderF in vimrc:

Describe your question, feature request, or bug.
As title.
Steps to reproduce

Actual behaviour
Expected behaviour
I want the text can also be selected after entering the filter word.

You can switch to normal mode by typing <tab>, then select the text.


Add refs to native input elements

Allows users to get access to the DOM elements within the components if needed

👍


Swift gRPC

As I commented in #20 the swift grpc setup isn't working. I've tried to get a working executable in a local build of the image but haven't been able to.
Is there any chance of getting it in this image?

I fixed it in my fork
Swift gRPC was missing in the original image


Detect no-op status updates

This PR is a

[x] Bug Fix

What this PR does / why we need it:
When the controller updates the status of an object (e.g. ServiceInstance), it stops reconciling the object and waits for the watch event to come back from the API server, which is when it then resumes the reconciliation. In some cases, the status update does not produce a watch event, because the controller doesn't actually modify the object in the status update (i.e. the state of the object in the request matches the existing object state in the API server). The controller should detect this and continue reconciling the object instead of stopping.
This PR makes the controller detect such no-op status updates. It also fixes a few other problems, where the controller assumed the object was updated, when it really wasn't.
Merge Checklist:

[ ] New feature

[ ] Tests
[ ] Documentation

[ ] SVCat CLI flag
[ ] Server Flag for config

[ ] Chart changes
[ ] removing a flag by marking deprecated and hiding to avoid
breaking the chart release and existing clients who provide a
flag that will get an error when they try to update

/approve


Added guide on how to upload model

"MODEL_UPLOAD.md" file explaining how to bring a task with a model to disco added in "disco/docs/"

following this morning's meeting, I think we might want to merge MODEL_UPLOAD.md with TASK.md


Swift 3 update - Release 0.3

Updated to use swift 3

Hi,
Thank you very much for the update. Could you please also update tests and example app to Swift 3?

Updated the projects requested... let me know if you need anything else!

Thanks!


Changed effective date to "23"

Description
Changed effective date to comply with normal time (non daylights saving)
References

#551

Additional changes to integration tests required to change date


Plans for an Officially Recognized Terraform Provider

Is your feature request related to a problem? Please describe
Currently, the best Terraform provider that exists for managing OpenSearch components such as index templates, ISM policies, etc, is a community-managed repository: https://github.com/phillbaker/terraform-provider-elasticsearch. Unless there are plans to develop a completely separate Terraform provider to accomplish similar tasks, it seems worthwhile to me to get that repo imported to the https://github.com/opensearch-project organization.
Describe the solution you'd like
Migrate https://github.com/phillbaker/terraform-provider-elasticsearch into the https://github.com/opensearch-project organization. Ensure that @phillbaker is given all the credit he deserves somewhere at the top of the README. Then submit the provider to the Terraform Integration Program to get a nice shiny "Verified" badge in the provider registry.
References:

https://www.terraform.io/registry/providers#provider-tiers-namespaces
https://www.terraform.io/docs/partnerships
https://github.com/phillbaker/terraform-provider-elasticsearch

Describe alternatives you've considered
No response
Additional context
I have also opened an issue to take @phillbaker's temperature around getting this done: https://github.com/phillbaker/terraform-provider-elasticsearch/issues/299. Apologies in advance if this isn't the right place to discuss this matter, but it seemed fitting enough.

@CEHENKLE @hyandell can you provide inputs for this request?


[JLLs] Cap JLLs to HDF5_jll v1.12

Here is the Julia code that I helped to do to set the caps. After this, I did some manual edits while reviewing the diff.
julia> function find_hdf5_jll(; query="HDF5_jll")
                  compat_dict = Dict{String, Dict{String,Bool}}()
                  for(root, dirs, files) in walkdir(".")
                      for file in files
                          if file == "Deps.toml" || file == "Compat.toml"
                              fullfile = joinpath(root,file)
                              lines = filter(contains(query), readlines(fullfile))
                              if !isempty(lines)
                                  printstyled(fullfile, ": "; color=:green)
                                  println.(lines)
                                  compat_dict[root] = get(compat_dict, root, Dict{String,Bool}())
                                  if file == "Deps.toml"
                                      deps_toml = TOML.parsefile(fullfile)
                                      for v in keys(deps_toml)
                                          compat_dict[root][v] = haskey(deps_toml[v], query)
                                      end
                                  elseif file == "Compat.toml"
                                      compat_toml = TOML.parsefile(fullfile)
                                      for v in keys(compat_toml)
                                          compat_dict[root][v] = haskey(compat_toml[v], query)
                                      end
                                  end
                              end
                          end
                      end
                  end
                  return compat_dict
              end

julia> function process_compat_toml(d, deps_dict)
                  fullfile = joinpath(d, "Compat.toml")
                  toml_dict = TOML.parsefile(fullfile)
                  for (k, v) in deps_dict
                      if v
                          if !haskey(toml_dict, k)
                              toml_dict[k] = Dict{String, Any}()
                          end
                          toml_dict[k]["HDF5_jll"] = "1.12"
                      end
                  end
                  toml_dict
              end

# Different from the OpenSSL code is that I set sorted = true for TOML.print
julia> function edit_compat_tomls(compat_dict; do_not_write = false)
                  for d in keys(compat_dict)
                      toml_dict = process_compat_toml(d, compat_dict[d])
                      if !do_not_write
                          open(joinpath(d, "Compat.toml"), "w") do io
                              TOML.print(io, toml_dict; sorted = true)
                          end
                      end
                      TOML.print(toml_dict; sorted = true)
                  end
              end

Ping @giordano

I believe that the version 1.12 is deemed compatible with 1.14, which we want to avoid. According to https://pkgdocs.julialang.org/v1/compatibility/, we need to use ~1.12 instead.

I believe that the version 1.12 is deemed compatible with 1.14, which we want to avoid. According to https://pkgdocs.julialang.org/v1/compatibility/, we need to use ~1.12 instead.

The ranges here are explict. They have already been "lowered" from semver. A semver compat declaration of ~1.12 translate to a range of just 1.12.
julia> Pkg.Types.semver_spec("~1.12") |> print
1.12
julia> Pkg.Types.semver_spec("~1.12.0") |> print
1.12
julia> Pkg.Types.semver_spec("~1.12.1") |> print
1.12.1-1.12
julia> Pkg.Types.semver_spec("~1.12.2") |> print
1.12.2-1.12

Yeah, the syntax of compat bounds we use in Package.toml is different from what's here in the registry.


initial draft of first project goals

suggestion for project goals, separated into immediate, mid- and long-term goals

👍


sage/connect-and-interact-with-celo-using-web3modal

@bobeu Update the PR Description
like this one
Thanks for submitting this tutorial for Celo Sage
Before you hit "Create Pull Request", make sure you have read the Tutorial Contribution Guidelines and reviewed the Sample Tutorial Structure.
Please confirm the following before submitting your tutorial for review -
My tutorial follows the Tutorial Contribution Guidelines.
The title of the Pull Request matches the title of my tutorial.
I've followed the tutorial template structure.
I've proofread the tutorial for spelling and grammar mistakes.
I've thoroughly explained the code, with inline code comments and text explanations.
I've run a linter & prettifier to format my code blocks.
I've run the tutorial to test it and the code works.
NOTE: We cannot review your Pull Request if it does not meet the standard outlined above.
Reviewers - @joenyzio & @viral-sangani


Mock generic ResponseBody or Response

    @GET("api/v1/whatever")
    Observable<ResponseBody> getSomething();

    @GET("api/v1/whatever")
    Observable<Response> getSomething();

How can I mock such methods>

It has been a while since I've used this library. So I can't tell you for sure, but maybe you can try to create your own custom annotation. Nevertheless, i think you should always specify the generic type working with Retrofit and Mockery.