all.bash: freebsd12.1 - go1.16.3 - build failed - out of memory

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

$ go version
1.16.3

Does this issue reproduce with the latest release?
YES
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="freebsd"
GOOS="freebsd"
GOPATH="/home/water/my_go"
GORACE=""
GOROOT="/home/water/src/go14"
GOTOOLDIR="/home/water/src/go14/pkg/tool/freebsd_amd64"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0"
CXX="clang++"
CGO_ENABLED="0"

What did you do?
RUN ./src/all.bash to build the latest version of GO

[water@eid01dev ~/src/go_1g3/src]$ ./all.bash
Building Go cmd/dist using /home/water/src/go14. (go1.4-bootstrap-20170531 freebsd/amd64)
Building Go toolchain1 using /home/water/src/go14.

Building Go toolchain2 using go_bootstrap and Go toolchain1.
./make.bash: line 215:   969 Killed                  ./cmd/dist/dist bootstrap $buildall $vflag $GO_DISTFLAGS "$@"
What did you expect to see?
Successfully build the latest version of GO.
What did you see instead?

How many CPU cores do you have on your machine? Maybe set GOMAXPROCS=1 to limit the parallelism?

339M Free

This is really too small to build Go toolchain. It might work with sufficient swap space, but it will put a lot of pressure on swap and probably very slow.

How many CPU cores do you have on your machine? Maybe set GOMAXPROCS=1 to limit the parallelism?
XEN: Hypervisor version 4.2 detected.
CPU: Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz (2400.04-MHz K8-class CPU)

339M Free
Hypervisor: Origin = "XenVMMXenVMM"
real memory  = 536870912 (512 MB)
avail memory = 478728192 (456 MB)

This is really too small to build Go toolchain. It might work with sufficient swap space, but it will put a lot of pressure on swap and probably very slow.

I have freed up to 2GB of swap, however the process was killed.
So what is the official minimum memory requirement for GO to compile?

So what is the official minimum memory requirement for GO to compile?

I vaguely remember it was mentioned somewhere but I couldn't find it. Maybe @ianlancetaylor @davecheney could provide a better answer.

And it can run go1.14.2 (built binary) without any problem.

Yes, running compiled Go programs are okay. It just needs more memory to build the toolchain itself (make.bash or all.bash).

So what is the official minimum memory requirement for GO to compile?

I vaguely remember it was mentioned somewhere but I couldn't find it. Maybe @ianlancetaylor @davecheney could provide a better answer.

And it can run go1.14.2 (built binary) without any problem.

Yes, running compiled Go programs are okay. It just needs more memory to build the toolchain itself (make.bash or all.bash).

I never released a programming language, are so picky and required those many resources.
I'll have to just stick to 1.4 c-complied one for basic features then.

I never realized a programming language, is so picky and required those many resources.

Have you tried to compile a C toolchain from source, like GCC or LLVM on that machine ?

Have you tried to compile a C toolchain from source, like GCC or LLVM on that machine ?

Yes, go1.4 (bootstrap) worked just fine. // go1.4-bootstrap-20171003.tar.gz

I recall seeing a problem with Go on FreeBSD 12.1 that was fixed by upgrading to 12.2. I don't have a reference.

I will try on 12.2 later, however, Linux CentOS 7 may also fail due to the
shortage of memory.
On Sun, 16 May 2021 at 07:00, Liam @.***> wrote:

I recall seeing a problem with Go on FreeBSD 12.1 that was fixed by
upgrading to 12.2. I don't have a reference.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/golang/go/issues/45759#issuecomment-841766798, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AB6N3UK6R2DTYCPUVGOM4XDTN5GN7ANCNFSM43RNJPPQ
.

--
This e-mail, any attachments and the information contained therein ("this
message") are confidential and intended solely for the use of the
addressee(s). If you have received this message in error please send it
back to the sender and delete it. Unauthorized publication, use,
dissemination or disclosure of this message, either in whole or in part is
strictly prohibited.

Ce message electronique et tous les fichiers joints ainsi que les
informations contenues dans ce message ( ci apres "le message" ), sont
confidentiels et destines exclusivement a l'usage de la personne a laquelle
ils sont adresses. Si vous avez recu ce message par erreur, merci de le
renvoyer a son emetteur et de le detruire. Toutes diffusion, publication,
totale ou partielle ou divulgation sous quelque forme que se soit non
expressement autorisees de ce message, sont interdites.

Closing as not a bug


[FLINK-18808][runtime] Include side outputs in numRecordsOut metric

What is the purpose of the change
If an operator has nonChainedOutputs, then its corresponding output should be counted in the task-level numRecordsOut metric.
This pull request is borrowed from #13109. The copyright of the original author is reserved as co-author.
Brief change log

Include side outputs in numRecordsOut metric

Verifying this change
This change added unit tests.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): no
The serializers: no
The runtime per-record code paths (performance sensitive): yes
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: no
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? no

Hi @pnowojski, Would you mind taking a look at this in you free time as you have been reviewed the original PR.

Thanks @pnowojski for the review! I have addressed your second comment this pr in the fix-up commit. As for the first comment, I need to hear your feedback.

Thanks @pnowojski for the review!
Sorry for the late reply as the previous day was a holiday in China😄, I have updated this pr according to your comments. Please take a look again in your free time.

One more thing, have you maybe manually confirmed that the bug fix is working after all of the changes in this PR? Just to double check your unit tests are indeed testing the right thing :)

One more thing, have you maybe manually confirmed that the bug fix is working after all of the changes in this PR.

Yes, I manually test the topology described in FLINK-31852 and FLINK-18808 and It seems to be in line with expectations.

Thanks @pnowojski for the review!
I have resolved some of the comments, and replied to the rest in comments. I will update promptly after receiving feedback.

Thanks for the quick reply. I have squashed all previous fix-up commits and pushed a new commit to address latest comment.

Thanks @pnowojski for the patient review and very helpful suggestion! 👍  All fix-up commits has been squashed.


adding missing 4k categories for filelist.py

Motivation for changes:
Missing flielist.py site 4k categories
Detailed changes:

movies 4k, movies 4k blueray and series 4k

Addressed issues:

Fixes # .

Implemented feature requests:

Feathub #XX.

Config usage if relevant (new plugin or updated schema):
paste_config_here

Log and/or tests output (preferably both):
paste output here

To Do:

[ ] Stuff..
This is quite a small change, no function to the python code was changed, I added categories based on what filelist reports the index numbers are for each new category.

Can you open this pull request against the develop branch? We don't merge directly into master.

No need to reopen, you can edit the PR and change the base branch

done!

Thanks!


use horizon 2.28.3

bump all variants to horizon 2.28.3

LGTM but someone needs to update Core refs! looks like v20.2.0 is the latest

good point, @leighmcculloch , the core version for testing image variant which is paired to testnet is at recent core release with v20.2.0rc3 but latest image representing pubnet and  future for futurenet are on 20.1.0 still, are we anticipating to bump both of those image variants to use core v20.2.0 next week when pubnet activates?

are we anticipating to bump both of those image variants to use core v20.2.0 next week when pubnet activates?

found pull/564 which takes care of v20.2.0 bumps.


Rudimentary worker management/limiting

Fixes #60.
This is a first pass at a system/configuration for limiting the amount of training/pipeline jobs we're running at once. Notable changes include:

The docker-compose.yml file now uses 3 girder workers instead of just 1.

One for running pipelines
One for running training
One for running miscellaneous tasks (image/video conversion, etc.). Any tasks dispatched with a normal use of task.delay will be run by this worker. This worker behaves in the same manner as the original worker, prior to this change.

run_pipeline and run_training are now called through .apply_async instead of .delay. This allows for the specification of which queue it should go to.

Addition and use of girder_worker_entrypoint.sh

Addition and use of environment variables for specifying the concurrency and GPUs for the training and pipeline workers

run_pipeline and run_training should now only use the GPU specified from the environment variables mentioned above, if these variables were set. I say "should" because I don't have access to a machine with multiple GPUs besides the production server, and I haven't tested it there.

One thing to note, I think it'd be very useful to have integration tests to verify this behavior. However, that would likely be a large and complex addition, so I didn't want to include it here, if I were even able to.
However I have tested these changes locally and on a server with a GPU, and the concurrency limits seem to behave as expected.

I'll take a look tomorrow morning.  Looks awesome.

It looks like this works.  It split transcoding and pipeline jobs into the right queues, and all the data produced still work.
I'd like to test training before I approve, because I don't know how to get the new training pipes into my local env.

The pipeline run fails with the model I trained.
I tried to train using netharn_cascade.habcam.  Training succeeds, but after I try to use the model, I get this:
Running command: cd /opt/noaa/viame && . ./setup_viame.sh && kwiver runner -p /home/worker/trained/trained_something/detector.pipe -s input:video_filename=/tmp/tmp1w36gi08.txt -s detector_writer:file_name=/tmp/tmpeqrv2glj.csv -s track_writer:file_name=/tmp/tmp1mj08057.csv
RuntimeError: Pipeline exited with nonzero status code 255: b'INFO: Could not load default logger factory. Using built-in logger.\n2020-09-10 17:31:09.366 INFO viame.processes.camtrawl.processes(411): REGISTER MY CAMTRAWL MODULE: python_viame.processes.camtrawl.processes, /opt/noaa/viame/lib/python3.6/site-packages/viame/processes/camtrawl/processes.py\n2020-09-10 17:31:09.368 INFO vital.modules.module_loader(66): Loading python modules\n2020-09-10 17:31:09.370 INFO viame.processes.camtrawl.processes(411): REGISTER MY CAMTRAWL MODULE: python_viame.processes.camtrawl.processes, /opt/noaa/viame/lib/python3.6/site-packages/viame/processes/camtrawl/processes.py\nCaught unhandled kwiver::vital::vital_exception: The file does not exist: /home/worker/trained/trained_something/detector.pipe, thrown from /viame/packages/kwiver/sprokit/src/sprokit/pipeline_util/pipeline_builder.cxx:104\n'
  File "/opt/venv/lib/python3.7/site-packages/celery/app/trace.py", line 412, in trace_task
    R = retval = fun(*args, **kwargs)
  File "/opt/venv/lib/python3.7/site-packages/girder_worker/task.py", line 153, in __call__
    results = super(Task, self).__call__(*_t_args, **_t_kwargs)
  File "/opt/venv/lib/python3.7/site-packages/celery/app/trace.py", line 704, in __protected_call__
    return self.run(*args, **kwargs)
  File "/home/viame_girder/viame_tasks/tasks.py", line 129, in run_pipeline
    process.returncode, str(stderr)

Tried a few more times.
One failed training with the same training config
INFO: Could not load default logger factory. Using built-in logger.
ERROR: Category already exists: (kp)
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/tmp4fefhj3d/category_models'
  File "/opt/venv/lib/python3.7/site-packages/celery/app/trace.py", line 412, in trace_task
    R = retval = fun(*args, **kwargs)
  File "/opt/venv/lib/python3.7/site-packages/girder_worker/task.py", line 153, in __call__
    results = super(Task, self).__call__(*_t_args, **_t_kwargs)
  File "/opt/venv/lib/python3.7/site-packages/celery/app/trace.py", line 704, in __protected_call__
    return self.run(*args, **kwargs)
  File "/home/viame_girder/viame_tasks/tasks.py", line 240, in train_pipeline
    shutil.move(str(training_output_path / "category_models"), training_results)
  File "/usr/lib/python3.7/shutil.py", line 580, in move
    copy_function(src, real_dst)
  File "/usr/lib/python3.7/shutil.py", line 266, in copy2
    copyfile(src, dst, follow_symlinks=follow_symlinks)
  File "/usr/lib/python3.7/shutil.py", line 120, in copyfile
    with open(src, 'rb') as fsrc:

Another succeeded, but the new trained model never appeared in the list.

@subdavis I've been able to reproduce these errors (on the add-training branch), but these are errors with the base add-training branch, and not with this branch. I know why these errors are occurring, so I can deal with them on the base branch.

I actually decided to address that issue on this branch, @subdavis when you're able could you run that same scenario again?

Pulled and rebuilt.  Training succeeds.  Running a trailed pipe still fails.
Running command: cd /opt/noaa/viame && . ./setup_viame.sh && kwiver runner -p /home/worker/trained/trained_ehu_single_fishy/detector.pipe -s input:video_filename=/tmp/tmpczdl_of4.txt -s detector_writer:file_name=/tmp/tmpn3f35i86.csv -s track_writer:file_name=/tmp/tmpccncg2xc.csv
RuntimeError: Pipeline exited with nonzero status code 255: b"INFO: Could not load default logger factory. Using built-in logger.\n2020-09-17 14:28:32.667 INFO viame.processes.camtrawl.processes(411): REGISTER MY CAMTRAWL MODULE: python_viame.processes.camtrawl.processes, /opt/noaa/viame/lib/python3.6/site-packages/viame/processes/camtrawl/processes.py\n2020-09-17 14:28:32.668 INFO vital.modules.module_loader(66): Loading python modules\n2020-09-17 14:28:32.670 INFO viame.processes.camtrawl.processes(411): REGISTER MY CAMTRAWL MODULE: python_viame.processes.camtrawl.processes, /opt/noaa/viame/lib/python3.6/site-packages/viame/processes/camtrawl/processes.py\nCaught unhandled kwiver::vital::vital_exception: The port 'image' on process 'detector_input' is not connected: The input port has the required flag, thrown from /viame/packages/kwiver/sprokit/src/sprokit/pipeline/pipeline.cxx:1996\n"
  File "/opt/venv/lib/python3.7/site-packages/celery/app/trace.py", line 412, in trace_task
    R = retval = fun(*args, **kwargs)
  File "/opt/venv/lib/python3.7/site-packages/girder_worker/task.py", line 153, in __call__
    results = super(Task, self).__call__(*_t_args, **_t_kwargs)
  File "/opt/venv/lib/python3.7/site-packages/celery/app/trace.py", line 704, in __protected_call__
    return self.run(*args, **kwargs)
  File "/home/viame_girder/viame_tasks/tasks.py", line 129, in run_pipeline
    process.returncode, str(stderr)

Pulled and rebuilt. Training succeeds. Running a trailed pipe still fails, though the error is different now.
Running command: cd /opt/noaa/viame && . ./setup_viame.sh && kwiver runner -p /home/worker/trained/trained_ehu_single_fishy/detector.pipe -s input:video_filename=/tmp/tmpczdl_of4.txt -s detector_writer:file_name=/tmp/tmpn3f35i86.csv -s track_writer:file_name=/tmp/tmpccncg2xc.csv
RuntimeError: Pipeline exited with nonzero status code 255: b"INFO: Could not load default logger factory. Using built-in logger.\n2020-09-17 14:28:32.667 INFO viame.processes.camtrawl.processes(411): REGISTER MY CAMTRAWL MODULE: python_viame.processes.camtrawl.processes, /opt/noaa/viame/lib/python3.6/site-packages/viame/processes/camtrawl/processes.py\n2020-09-17 14:28:32.668 INFO vital.modules.module_loader(66): Loading python modules\n2020-09-17 14:28:32.670 INFO viame.processes.camtrawl.processes(411): REGISTER MY CAMTRAWL MODULE: python_viame.processes.camtrawl.processes, /opt/noaa/viame/lib/python3.6/site-packages/viame/processes/camtrawl/processes.py\nCaught unhandled kwiver::vital::vital_exception: The port 'image' on process 'detector_input' is not connected: The input port has the required flag, thrown from /viame/packages/kwiver/sprokit/src/sprokit/pipeline/pipeline.cxx:1996\n"
  File "/opt/venv/lib/python3.7/site-packages/celery/app/trace.py", line 412, in trace_task
    R = retval = fun(*args, **kwargs)
  File "/opt/venv/lib/python3.7/site-packages/girder_worker/task.py", line 153, in __call__
    results = super(Task, self).__call__(*_t_args, **_t_kwargs)
  File "/opt/venv/lib/python3.7/site-packages/celery/app/trace.py", line 704, in __protected_call__
    return self.run(*args, **kwargs)
  File "/home/viame_girder/viame_tasks/tasks.py", line 129, in run_pipeline
    process.returncode, str(stderr)

What config did you use for training?

Same as before: train_netharn_cascade.viame_csv.conf

Tested on latest build of base image, still getting this error
Running command: cd /opt/noaa/viame && . ./setup_viame.sh && kwiver runner -p /home/worker/trained/trained_fish!/detector.pipe -s input:video_filename=/tmp/tmpgk1tr_yy.txt -s detector_writer:file_name=/tmp/tmpehk2ao11.csv -s track_writer:file_name=/tmp/tmpdzx6kefp.csv
RuntimeError: Pipeline exited with nonzero status code 255: b"INFO: Could not load default logger factory. Using built-in logger.\n2020-09-17 18:52:24.535 INFO vital.modules.module_loader(66): Loading python modules\nCaught unhandled kwiver::vital::vital_exception: The port 'image' on process 'detector_input' is not connected: The input port has the required flag, thrown from /viame/packages/kwiver/sprokit/src/sprokit/pipeline/pipeline.cxx:1996\n"
  File "/opt/venv/lib/python3.7/site-packages/celery/app/trace.py", line 412, in trace_task
    R = retval = fun(*args, **kwargs)
  File "/opt/venv/lib/python3.7/site-packages/girder_worker/task.py", line 153, in __call__
    results = super(Task, self).__call__(*_t_args, **_t_kwargs)
  File "/opt/venv/lib/python3.7/site-packages/celery/app/trace.py", line 704, in __protected_call__
    return self.run(*args, **kwargs)
  File "/home/viame_girder/viame_tasks/tasks.py", line 129, in run_pipeline
    process.returncode, str(stderr)

A lot of my training fails because of GPU or other limits, although the job still reports as success (I don't know if that is intentional).  I've had one or two instances in which it seems like it created a pipeline that doesn't work at all.
I've had one successful instance of training a pipeline on a few frames of a single detection and was able to run it and got back at least something sort of relevant with the proper types:

Still getting this error.
Running command: cd /opt/noaa/viame && . ./setup_viame.sh && kwiver runner -p /home/worker/trained/trained_farsh/detector.pipe -s input:video_filename=/tmp/tmp8zm22uxx.txt -s detector_writer:file_name=/tmp/tmpv8_wyn_n.csv -s track_writer:file_name=/tmp/tmpixfzxcao.csv
RuntimeError: Pipeline exited with nonzero status code 255: b"INFO: Could not load default logger factory. Using built-in logger.\n2020-09-18 18:41:32.939 INFO vital.modules.module_loader(66): Loading python modules\nCaught unhandled kwiver::vital::vital_exception: The port 'image' on process 'detector_input' is not connected: The input port has the required flag, thrown from /viame/packages/kwiver/sprokit/src/sprokit/pipeline/pipeline.cxx:1996\n"
  File "/opt/venv/lib/python3.7/site-packages/celery/app/trace.py", line 412, in trace_task
    R = retval = fun(*args, **kwargs)
  File "/opt/venv/lib/python3.7/site-packages/girder_worker/task.py", line 153, in __call__
    results = super(Task, self).__call__(*_t_args, **_t_kwargs)
  File "/opt/venv/lib/python3.7/site-packages/celery/app/trace.py", line 704, in __protected_call__
    return self.run(*args, **kwargs)
  File "/home/viame_girder/viame_tasks/tasks.py", line 129, in run_pipeline
    process.returncode, str(stderr)

Base image:
kitware/viame                                                           gpu-all-models-latest   b1911ba4455b        18 hours ago        13.1GB

Built worker image:
kitware/viame-worker                                                    latest                  d5fc74930650        42 minutes ago      13.7GB

Verification of layers from base image
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:cc967c529ced563b7746b663d98248bc571afdb3c012019d7f54d6c092793b8b",
                "sha256:2c6ac8e5063e35e91ab79dfb7330c6154b82f3a7e4724fb1b4475c0a95dfdd33",
                "sha256:6c01b5a53aac53c66f02ea711295c7586061cbe083b110d54dafbeb6cf7636bf",
                "sha256:e0b3afb09dc386786d49d6443bdfb20bc74d77dcf68e152db7e5bb36b1cca638",
                "sha256:37b9a4b2218692d028f9f26aa9cb85bf1f56d9abe612ba31304643bdb448484f",
                "sha256:dd841c774a309a21f43ffda7ac83b3f2010bfb069001e4d07df680bbe090de7d",
                "sha256:52ad947270f13baeba0d0ff0d49b1d3f7eb96ab2a10918720378b52854f0e69c",
                "sha256:4e3516398cef383414b5a99a909dc05e677f0b08787196ac7392508d09ed0467",
                "sha256:582ab80c9f263c2a5b4ece0985341b1b76f863d7c07f4697af18d6b18b4d2141",
                "sha256:81e5355257731828005ce0b3ce4115114e67e3e24718f3cf477ba430044687ae",
                "sha256:44ad6c44cf44e554529636ed6b51176e71a032a13fab68ef8f899914e6b4f9f6"
            ]
        },

And layers from worker
            "Layers": [
                "sha256:cc967c529ced563b7746b663d98248bc571afdb3c012019d7f54d6c092793b8b",
                "sha256:2c6ac8e5063e35e91ab79dfb7330c6154b82f3a7e4724fb1b4475c0a95dfdd33",
                "sha256:6c01b5a53aac53c66f02ea711295c7586061cbe083b110d54dafbeb6cf7636bf",
                "sha256:e0b3afb09dc386786d49d6443bdfb20bc74d77dcf68e152db7e5bb36b1cca638",
                "sha256:37b9a4b2218692d028f9f26aa9cb85bf1f56d9abe612ba31304643bdb448484f",
                "sha256:dd841c774a309a21f43ffda7ac83b3f2010bfb069001e4d07df680bbe090de7d",
                "sha256:52ad947270f13baeba0d0ff0d49b1d3f7eb96ab2a10918720378b52854f0e69c",
                "sha256:4e3516398cef383414b5a99a909dc05e677f0b08787196ac7392508d09ed0467",
                "sha256:582ab80c9f263c2a5b4ece0985341b1b76f863d7c07f4697af18d6b18b4d2141",
                "sha256:81e5355257731828005ce0b3ce4115114e67e3e24718f3cf477ba430044687ae",
                "sha256:44ad6c44cf44e554529636ed6b51176e71a032a13fab68ef8f899914e6b4f9f6",
                "sha256:8227f011370f07677b1cef386afc9e95ca876b29f96d630d19a178256fd005b4",
                "sha256:70cbdf50f0d9105b661a4fb4ff79a349bc72ac268ce46111c899a33c936e8d60",
                "sha256:e9f56a25487f345c3e3618d04dc2beee76141f133e53bae3a01d4a7498a4a265",
                "sha256:53fb2af21a87d6e40c966355f2e685c6ca4a2d79f9a9e0f197069e62f97523ea",
                "sha256:a273f28be4736870095954ba655c70656ac61a4f13f49cb2bbce43d3c4182bd8",
                "sha256:cb89d6abe01848f23030b7d6df9773ea2e21db94cc95d40299dc93b483482e61",
                "sha256:c895014d027107c2434a8402548ca4603b324b724cd671ac4e8233cfdd471b03",
                "sha256:7ebb9ef2dbcac091bfd9f19ab6270329b99ee2ae80e3a20fda90eb86aa277cd7",
                "sha256:61f78904c248543026d032e1db459679423952f246b2e3a73942b1f8c4a70715",
                "sha256:ee225bbe34257fd122404db2cbc0d3750a8e034681abc5cd19ba35a8e28a4a00",
                "sha256:6106c626642452b681d6f6facf1ccafcdd0b7b8fe56b229f61c377ee173b1763",
                "sha256:441b6f6abf6c42ea646d6f250f56dcab0c6609483c9acbb52e0bc7b1a4c488ec",
                "sha256:a0c5e4339964d87a257784d52aacba3c22cc914186a6e8ad1392fab57aabd468",
                "sha256:db15d0e64afa5367decec9860ed405a2b6f1f7b58ee4ee089a8bb61a0963d42e",
                "sha256:750835753fd9c40521e0a687efb5a03f61e8e81f9750298e8654a2e9f2215930",
                "sha256:172678038b844621059ed04275ed3ea286cc1c55803ee9e14b3b5f29db918cf1"
            ]
        },

Notice that the first 9 match.
This is still a problem for me.


Suggestions only working on the initial tag

I've implemented your library, and I'm trying to make use of the suggestions feature. It seems to work fine for the first tag I input, but once I try to write a second tag, no suggestions pop up. Is this an issue specific to me, or are you experiencing the same issues? Thanks

I believe that's an issue specific to you. You can try out a working demo on WebpackBin

Closing this since I haven't heard back.


Extendable discovery configuration

Some fixes/refactoring in autoconfigurations which make providing own implementations of certain beans possible (in particular ConsulLifecycle)
Fixes #119

@mabn any response to my comments? If not, I'm going to close this.

@spencergibb done

Squashed and merged with a little polish via ccea77d6615a22783daecbede15deb12dc6cef04


Adding project via .csproj path to AppHost results in errors when the project is outside the solution directory

Reported in comment: https://github.com/dotnet/aspire/issues/1065#issuecomment-1885403930
I reproduced this issue using the repro archive provided in the linked comment above. Below is the errors I see when launching the ScimTestAspireHost.AppHost project:
info: Aspire.Dashboard.DashboardWebApplication[0]
      Now listening on: http://localhost:15198
info: Aspire.Dashboard.DashboardWebApplication[0]
      OTLP server running at: http://localhost:16049
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
      Content root path: C:\Users\dedward\Downloads\AspireProblemSampleCode\ScimTestAspireHost\ScimTestAspireHost.AppHost
fail: Aspire.Hosting.Dcp.dcpctrl.ExecutableReconciler[0]
      run session could not be started  {"Controller": "usvc-dev.developer.microsoft.com/executable-reconciler", "Executable": {"name":"scimtestmicroservice1-0dkjub8"}, "Reconciliation": 5, "Status": "500 Internal Server Error", "Body": ""}
fail: Aspire.Hosting.Dcp.dcpctrl.ExecutableReconciler[0]
      failed to create temporary file for capturing standard output data        {"Controller": "usvc-dev.developer.microsoft.com/executable-reconciler", "Executable": {"name":"scimtestmicroservice1-0dkjub8"}, "Reconciliation": 10, "error": "open C:\\Users\\dedward\\AppData\\Local\\Temp\\aspire.f1ghqvnr.igy\\scimtestmicroservice1-0dkjub8_out_cba62715-7d97-423a-936c-51f0dc64d203: The file exists."}
fail: Aspire.Hosting.Dcp.dcpctrl.ExecutableReconciler[0]
      failed to create temporary file for capturing standard error data {"Controller": "usvc-dev.developer.microsoft.com/executable-reconciler", "Executable": {"name":"scimtestmicroservice1-0dkjub8"}, "Reconciliation": 10, "error": "open C:\\Users\\dedward\\AppData\\Local\\Temp\\aspire.f1ghqvnr.igy\\scimtestmicroservice1-0dkjub8_err_cba62715-7d97-423a-936c-51f0dc64d203: The file exists."}
fail: Aspire.Hosting.Dcp.dcpctrl.ExecutableReconciler[0]
      run session could not be started  {"Controller": "usvc-dev.developer.microsoft.com/executable-reconciler", "Executable": {"name":"scimtestmicroservice1-0dkjub8"}, "Reconciliation": 10, "Status": "500 Internal Server Error", "Body": ""}

dupe of #1486


Add text

On your gif example, you show a text on each cell. How can I add that label?
Thanks.
Regards

The first GIF use the component, the second example (which you mean) was my expiration for it.
But you can do it also.
The protocol function piledView(viewForPiledView: VBPiledView, itemAtIndex index: Int) -> UIView want a UIView from you:
  func piledView(viewForPiledView: VBPiledView, itemAtIndex index: Int) -> UIView {
    return // a view at "index"
  }

Create a UIView, add a UIImage as subview with your image and add a UILabel on the UIView as subview with your text.
Do you need a sample code?
Can code it for you later.

ok.. thanks @v-braun. If you can code the example and add to the readme will be awesome.
Thanks for your help.

I implemented it!
Check it in the example project:
https://github.com/v-braun/VBPiledView/blob/master/Example/Example/ImgWithTextViewController.swift

wow man, that is awesome. Thanks for your framework, help and example 👍


watchdog not importable

I recently started receiving this error:
FileBrowser:

watchdog module is not importable, hence we cannot know about changes on file system, and auto-refresh will not work.

Despite that, FileBrowser is fully usable without auto-refresh, you can just ignore this message and manually refresh view with r key.

But if you want working auto-refresh:
 • if you install manually, then look at Readme how to install it,
 • if you install via Package Control, report an issue.

I had FileBrowser installed with Package Control initially, so i tried to re-install it from Package Control again and it can't be found. I tried installing it manually according to the README and then i got an error saying dired index is empty, this should never happen, there is a bug
running ST3 Build 3143, on Ubuntu 17.10

not being able to find FileBrowser in the package control list was my own issue, I've sorted that out, but whne i re-install i still get the same errors otherwise

I've done some more troubleshooting. i re-installed ST3, installed package control and FileBrowser only and it worked fine, until i either close & re-open FileBrowser or close & re-open ST3. Also, the FileBrowser folder from ~/.config/sublime-text-3/Packages does not exist, and cloning the repo to that location doesn't change anything

Is there any error if you execute this in console
import package_events; from watchdog.observers import Observer; from watchdog.events import FileSystemEventHandler

>>> import package_events; from watchdog.observers import Observer; from watchdog.events import FileSystemEventHandler
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named 'watchdog.observers'

What if you execute import watchdog?
Is there directory ~/.config/sublime-text-3/Packages/watchdog?
If not; is there any error in console if run Package Control: Satisfy Dependencies in the command palette?
Which distro you use?

this is what i got:
Traceback (most recent call last):
  File "/opt/sublime_text/sublime_plugin.py", line 993, in run_
    return self.run(edit, **args)
  File "dired in /home/brandon/.config/sublime-text-3/Installed Packages/FileBrowser.sublime-package", line 187, in run
  File "common in /home/brandon/.config/sublime-text-3/Installed Packages/FileBrowser.sublime-package", line 170, in emit_event
AttributeError: 'module' object has no attribute 'notify'
Traceback (most recent call last):
  File "/opt/sublime_text/sublime_plugin.py", line 993, in run_
    return self.run(edit, **args)
  File "dired in /home/brandon/.config/sublime-text-3/Installed Packages/FileBrowser.sublime-package", line 187, in run
  File "common in /home/brandon/.config/sublime-text-3/Installed Packages/FileBrowser.sublime-package", line 170, in emit_event
AttributeError: 'module' object has no attribute 'notify'
error: FileBrowser:

"dired_index" is empty,
that shouldn’t happen ever, there is some bug.
Traceback (most recent call last):
  File "/opt/sublime_text/sublime_plugin.py", line 993, in run_
    return self.run(edit, **args)
  File "dired in /home/brandon/.config/sublime-text-3/Installed Packages/FileBrowser.sublime-package", line 405, in run
  File "dired in /home/brandon/.config/sublime-text-3/Installed Packages/FileBrowser.sublime-package", line 426, in goto_directory
TypeError: 'NoneType' object is not subscriptable

Yes i have the ~/.config/sublime-text-3/Packages/watchdog
and just for good measure i ran Satisfy Dependencies and the logged response was Package Control: All dependencies have been satisfied

also, what's weird is i don't have a ~/.config/sublime-text-3/Packages/FileBrowser directory

When you install via PC it is placed as a zipball in Intalled Packages/FileBrowser.sublime-package;
if it is already installed you cannot install it again without removing it first, PC won’t show installed packages in the list for installation;
you shouldnot try to install it manually if it is already via PC;
When you have 'module' object has no attribute but the module itself is importable (package_events in this case, and the same with watchdog.observers—AFAIU import watchdog does not raise any errors, right?) means module was not loaded properly, usually you can fix it by relaunching ST.
So if you still have those errors, make sure that there are no any remains from manual installation (i.e. Packages/FileBrowser), and exit ST.

installed package control and FileBrowser only and it worked fine, until i either close & re-open FileBrowser or close & re-open ST3

I’ve tested it on Ubuntu, I tried to close, re-open—everything works without errors including auto-refresh itself.
Did you do anything else before the error started popping?

Thanks for testing it on Ubuntu and being responsive. I hadn't really changed much on my system before seeing the error, It did go through some system updates, but that's about it. I re-installed sublime from scratch, installed PC and FileBrowser and now everything works normally with no errors, including after closing/re-opening bot ST3 and FileBrowser.
So who knows what caused the issue. I have changed nothing to fix the error, but it's working now.
Again, thanks for being responsive, and for all your work on this package, it's amazing!


not being able to work with time

what can we do if we want to execute some functions based on the time passed?
for example i want to stop recording after 40 seconds and user should not be able to record more than that.
i didn't see any method or props related to this Time Topic in the docs.
any help would be appreciated

Hi. I'll try to add this functionality in the next couple of weeks. In the meantime you're welcome to open Pull Request containing the requested changes. :)


This prompt does not generate any code

When running this prompt, the process seems to stop quickly and for no apparent reason. No code is generated.
I've been successfully generating code before this, but not with prompts with as much detail as this one.
I have tried it twice and it seems to behave the same both times
This is the generate_codebase call:
codebase: dict = generate_codebase(
    f"""

## Python OpenAPI Spec Filter and Trimmer

**Objective:**

Build a user-friendly command-line tool in Python to filter and optionally trim OpenAPI specifications in YAML format.

**Functionality:**

1. **Input:**
   - Accepts a URL or local file path to an OpenAPI spec (YAML) as a positional argument.
   - Downloads and saves the file locally if a URL is provided.
   - Verifies file existence for a local file path.

2. **Validation:**
   - Validates the input file against the OpenAPI specification using a suitable Python library (e.g., `openapi-spec-validator`, `connexion`).

3. **Trimming (Optional):**
   - Enabled using the `--trim` flag.
   - Create a "trimmed" version of the spec file:
     - Remove all `example` fields throughout the specification (parameters, request/response bodies, objects, properties, etc.).
     - Remove the entire `components/examples` section, if present.
     - Save the trimmed version with a "trimmed_" prefix.
   - Attempt to validate the trimmed file.
   - If validation fails, display a user-friendly error message including a formatted stack trace and exit.

4. **Path Filtering (Optional):**
   - Enabled using the `--filter` flag.
   - **Regex Input:**
      - If `--filter-pattern='<REGEX_PATTERN>'` is provided, use the given regex.
      - If `--filter-pattern` is not provided:
         - Display all paths from the OpenAPI spec to the user.
         - Prompt the user to enter a regex pattern.
         - Validate the regex and re-prompt if invalid.
         - Display the filtered path list.
         - Allow the user to refine the regex until satisfied.
   - Filter the paths in the OpenAPI spec to include only those matching the provided or user-defined regex.
   - Display the filtered list of paths to the user.

5. **Output Generation:**
   - If neither `--filter` nor `--trim` is provided, default to `--help`.
   - Create a new OpenAPI spec file (YAML):
     - Use the prefix "filtered_" if filtering is applied.
     - Use the prefix "trimmed_" if trimming is applied (and filtering is not applied).
     - Use the prefix "trimmed_filtered_" if both trimming and filtering are applied.
   - Include only the paths matching the regex (if filtering is enabled).
   - Include only the models and components referenced by the included paths.

6. **Error Handling:**
   - Implement user-friendly error messages for:
     - Invalid file paths or URLs.
     - Invalid OpenAPI spec format.
     - Regex validation errors.
     - Missing or invalid command-line arguments.
   - Use a Python library to format stack traces readably for debugging.

7. **Help (`--help`):**
   - Display a clear and concise help message explaining the usage of the tool:
     - Describe the purpose of the tool.
     - List and explain all command-line flags and options:
       - `--trim`: Enable trimming of examples.
       - `--filter`: Enable path filtering.
       - `--filter-pattern='<REGEX_PATTERN>'`: Provide a regex pattern for filtering.
     - Provide examples of valid command usage.

**Testing:**

- Create a test suite with at least 10 test cases covering various scenarios:
  - Valid and invalid input files.
  - Trimming with and without filtering.
  - Different regex patterns for filtering.
  - User interaction for regex input.
  - Help message display.
- Generate fixture files containing:
   - Valid OpenAPI specifications in YAML format.
   - Corresponding "trimmed" versions of those specifications.
   - Expected "filtered" versions based on different regex patterns.
- Write tests to:
    - Validate that the trimming logic correctly removes examples and unused components.
    - Confirm the filtering logic produces the expected output based on different regex inputs and fixture files.
    - Ensure error handling, user prompts, command-line argument parsing, and help message display function correctly.

**Code Style:**

- Adhere to PEP 8 style guidelines.
- Use clear and concise variable and function names.
- Include comments to explain complex logic.
- Use type hints for function parameters and return values.

""",
    steps=20
)

Hi @ballidev,
I just tried your prompt with the latest version of L2MAC, and it does generate a full codebase. This was created using the gpt-4o model. I am not sure why, in your original case, the code was not generated. I can only imagine that this was due to using an old LLM version, such as the LLM not fully understanding how to implement this prompt. Please feel free to share more details so I can understand the issue further and get it resolved.
I ran your prompt as a test without running unit tests, and it generated the following codebase, which I attached. I thought you would like the codebase to match your prompt, so I attached it here.
If I can help further, please do let me know,
All the best,
Sam
20241227-002818.zip


Spanish translation

Hi @liammclennan! I found this repository very useful and I've thought to translate it in Spanish language.
So, I will start to translate it now in our fork... I will send you a pull request when is ready.

Pull request sent #59.

No response on the PR so closing.


Pass the created HTML node to the preact component

Hi!
It would be very helpful if the custom element that is created in the register function also gets passed to the preact component (along with the attributes), so that it's possible to reference the actual DOM element inside of the preact component.
This would provide a clean way to e.g. fire events on the custom element itself, when scoped events are necessary. For example, if a web component uses events to communicate, and multiple instances of the same web component are loaded on the same page. If the events aren't scoped in that case (but e.g. all emitted on the document), it's impossible to figure out which player fired the event.

can't you just use this.base.parentElement after componentDidMount ran? That's what I am doing in my code...


Problem on connection

Tell us where you are using Dejavu (Hosted web app, Chrome extension, Docker Image, Within appbase.io)
Chrome extension
What is the version of Dejavu that you are using?
Certainly last version installed 10 minutes ago.
Describe the issue that you are seeing, or the feature request :-), include any screenshots as necessary.
I installed the chrome plugin and tried to connect by typing "<IP_ADDRESS>:9200" then the input was freezed and can do nothing, tried to refresh several time close open the tab, then I had a white page.
Elasticsearch was not running I was expecting something like a timeout or an error message but nothing.
Second try: I uninstall the plugin and install again, this time the login page was back. I type again <IP_ADDRESS>:9200, but this time elasticsearch was running, I was able to access via curl.
Same problem, after several refresh I was able to delete the first input and notice that maybe need to put http://<IP_ADDRESS>:9200 so I tried to type in the input but it was in readonly or blocked I was not able to type inside, but when I clicked on run one pop-up appear with error message that the address is mandatory, I forget about the exact message.
Anyway the test to check if the field is empty work correctly!
If you can add a test to check the format if it must start with http:// or set a timeout or something to tell the user that you try to connect "wait 10 sec." (inform about the time of the timeout), it can be very helpful.
I'll give a try again later and hope that I can connect.
Hope it help.
If your issue deals with accessing Elasticsearch cluster, share the necessary steps to replicate the behavior (the configuration.yml settings, where your ES cluster is hosted, any relevant logs).
No problem with elasticsearch as I can access with kibana, cerebro and curl.
If your issue deals with a UI issue, share with us a screenshot of the failing network request or the browser console log showing the error.

The homepage is being redone so we could partially tackle a few issues here. Hope you were able to connect with http://

This shouldn't be a problem with the latest release 3.0.1 on Chrome Store.


File and folder size resolution

Convert the size to a human-friendly format like 4MB

Fixed in 4a542a4e0e2844e8c081dc8349a915088d2c8a1a


add @"text/html" will solve some special request

some json will include the type @"text/html",if here not add this,this type request can't return any data for us.
I have encountered this error,NSLocalizedDescription=Request failed: unacceptable content-type: text/html.
so I hope will check it out ,and accept it soon!

add @"text/html" will solve some special request
some json will include the type @"text/html",if here not add this,this type request can't return any data for us.
I have encountered this error,NSLocalizedDescription=Request failed: unacceptable content-type: text/html.
so I hope will check it out ,and accept it soon!

In future, please check for similar pull requests (to prevent duplicate work and review). This is very similar to #2447, #2639, #2871.

This is not the correct solution. If a server is not sending a non-standard or incorrect content type, set the acceptableContentTypes property as necessary.

Adding non-standard acceptable content types is a slippery slope. Not all HTML or javascript is XML compatible, so dropping this in here potentially causes other issues. For your use, you can easily update the acceptable content types for each serializer, so there is no need to patch it here.

Or better yet, fix your server/API to use the correct content-types for JSON.

Thank u,I'm sorry I didn't check the similar requests.This is my frist pull requests,I'm look forward to the AFNetworking will be better and better.


Heatmap layer does not show up in IE10

I have found the following bug. Those are the steps I have followed:

I created a heatmap with the Editor.
The problem consist in that the heatmap layer does not show up in IE10:

On the other hand, in Chrome and Firefox works. It shows a warning but the heatmap layer shows up:

Finally, in IE11 works. The heatmap layer is shown.

Heatmaps require CORS to be available with images. IE10 doesn't support that, so heatmaps don't work with IE10.
http://stackoverflow.com/a/17012551


Default connection timeout is way too low (50ms).

ClickHouseConnectionSettings.CONNECTION_TIMEOUT("connection_timeout", 50)
I traced this into Apache HTTP client being used -- this is milliseconds value even though it is specified as int.
With this default anything that is not very local will fail (in my case -- trying to connect to database in EU DC from Canada.

Thanks for the report.
I think there is no value for this setting that is correct in all cases, so it doesn't matter which exact value it is. What matters is how it can be configured. If you connect from application code, you can override the value with ClickHouseProperties or with Properties where you can pass the value as textual property. If you connect with some application where you can't manage the code and use compiled jar with dependencies, you can recompile with the value that fits your needs. That isn't convenient, but I can't propose anything else for now.
I can't imagine all the use cases, so it would be nice if you described your case and proposed what could be changed to make configuration more convenient.

While I agree that there is probably no value that is 'correct' in all cases, I don't agree that 50ms is reasonable default. This is for opening TCPIP connection which I assume doesn't happen all that often (I assume that the previously opened connection is kept alive). What possible reason is there for making it fail unless you're very local to your database?
If you don't want to pick a number, a reasonable default would be to leave it unset -- so it defaults to whatever Java/OS default value is.
If you're extremely timing-conscious on your client side (you'd rather fail than wait for more than XX ms), you still have an option of setting connection property to whichever value you prefer.
My specific usecase right now was connecting to remote clickhouse w/ SquirrelSQL. I'm fairly sure (tho i haven't tried) that it is possible to set the connection properties there somewhere, so I certainly could've used connection_timeout workaround.
But that kind of isn't the point :) The point is that from the user point of view driver fails unexpectedly and it is very un-clear why & how to fix it. It works locally, but when you try to connect to remote machine it suddenly fails.
If you still think that having very short default connection_timeout is a good idea, at least please consider inserting information about connection_timeout setting into the error message. But personally I think 50ms default is unreasonable and needs to be higher (or not set at all as mentioned above).

I agree that it is unacceptable to make SQL IDE and other products users waste time chasing this timeout error. It must work with default value in all reasonable cases (I think 5 seconds is more than enough).
Although it is easy to override defaults from applications code, some applications may rely on defaults, so the changes in defaults must be announced.
I'll consider updating the timeout versus some other option that I don't have yet.


load stats after table loads

currently it looks strange when the stats line loads alone, then the table loads... looks a bit broken.  with this change we load stats after the table loads, looks better.

Sounds good.


Can we delete this repo?

To be honest. I didn't manage to cover any of the issues in the last months. Also do not see it happening. It's rather anyone taking over or it should go. :<

I'd say get rid of it and if the problem arises (we want a vagrant project with hoodie in it) then we can start again? It's been 3 years.
Thanks for your work and input @cainvommars 💃

I’ve renamed the repo to legacy-hoodie-vagrant and set description to ⛔ not up-to-date

LGTM! I'll close this then :)


add ghcr badge

ghcr.io's api doesn't let you see the pull count so I created ghcr-pulls, a daily scraper that updates the count and makes this badge possible. I noticed that you use ghcr and made a tool for it and thought you might find this useful.

Nice! Thanks, @ipitio!


Saving inventory should work

I hope you like this way of saving. If not please don't take this pull request and let me know what you think about it.

Okay so you've got the right idea but there are a few things that need to be taken into account to make this as dynamic as possible.
The Inventory class is designed to be used with anything that holds items. So the Player, a chest, another entity, etc. It is to be used in many things other than just the Player. Because of this, we need to be saving some type of identifier that tells us what/where the inventory should be loaded into. Right now, only the Player keeps an inventory, but we know that other entities will keep an inventory and we need to take it into account.
Also, the save and load methods should be separated from the Inventory class. The methods should be moved to the WorldIO class, renamed to saveInventory and loadInventory (for example), and both should take an Inventory instance as a parameter. These methods should then be used within the saveWorld and loadWorld methods.

Why do you mean that the loadInventory method should take an Inventory instance as a parameter? I mean you don't got an instance of it before loading right?

Woops, I meant to say the saveInventory method should take an Inventory instance as a parameter and the loadInventory method should return an Inventory instance.

And what do you think about this:
Should the different inventorys (from player, chests...) be saved in the same file?

I would need to put a good amount of thought into it, but I can give you an idea that I have in my head. It would be best, to cut down on the amount of processing, to save the chest inventories in files relative to the chunk that they're in. Chunk files are named "ChunkX_Y.save" where X and Y are the X and Y locations of the chunk in the world. What we can do is create another file for each chunk called "ChunkX_Y_Inventories.save" which contains all inventories on that chunk.
When it comes to actually saving the information, I imagine it would be best to use a XML library to read and write the actual data. Let me explain why. There can be different types of writing implementations that depend on what is holding the inventory. For example, there will be a writing type for Entities, a writing type for Inventory blocks (chests), etc. For each writing type they will save different information. The entity type might save the entity ID and the entity location. The Inventory block type might save only the block location. The XML would look something similar to this:

InventoryBlock
100
225
Here is where the saved inventory string would go that would be read and converted to an actual inventory when loaded

Entity
2
300
200
Here is where the saved inventory string would go that would be read and converted to an actual inventory when loaded

Would you save the player inventory in one of the chunk files (from that chunk where players position is in) or in another file?
Do you know which XML library you would choose?

Right now only the player's X and Y position is being saved in the world.save file. I think that what needs to be done is that it needs to be saved in a "player.save" file in an XML format. It will hold the X and Y position and the inventory data (for now). As more content is added, like stats, that will also be added to the file.
As far as the XML library, thinking about it more now, it'll probably be easier to just use JSON. Check out this tutorial with JSON.simple. Include it as gradle dependency using compile group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1.1'

I will try that! Thanks!

What do you think about the player.save looking like this:
{
"playerPosition":[1226.3534,27936.0],
"playerInventory":[itemStack,itemStack,itemStack.....]
}
I am not sure if the itemStack should look like: x, y, id, stack

Always take into account the possibility that more data will be added in the future. So right now it may just be id, x, y, and stack but it always could have more information when new item types are added. So you need to make it so that adding new data is possible and wouldn't break the system. As long as that holds true, it should work fine.

I think with an "layout" like this adding more data should be no problem;
{
"playerInventory":[
{"stack":1,"x":0,"y":0,"id":7},
{"stack":25,"x":1,"y":0,"id":5},
{"stack":1,"x":2,"y":0,"id":12},
{"stack":5,"x":3,"y":0,"id":2},
{"stack":5,"x":4,"y":0,"id":3}],
"playerPosition":[1344.1166,27872.0]
}
What do you think?

What do you think about a "layout" like this:
{
"playerInventory":[
{
"stack":1,
"x":0,
"y":0,
"id":7
},
{
"stack":25,
"x":1,
"y":0,
"id":5
},
{
"stack":1,
"x":2,
"y":0,
"id":12
},
{
"stack":5,
"x":3,
"y":0,
"id":2
},
{
"stack":5,
"x":4,
"y":0,
"id":3
}
],
"playerPosition":[
{
"x":1344.1166,
"y":27872.0
}
]
}
I think here you could easy add more data.

I like that a lot! Definitely will be able to add to it if ever needed.

I like the implementation a lot! The only change I would like to see is for the logic of the saving and loading inventory moved outside into its own methods. That way it can be used for all inventories.

What do you think about a method which "converts" an inventory to a JSONString? Because then you can use this method for the player inventory and chest inventories.

I understand exactly what you mean. Thinking about it, this may be something that needs to be done for all kinds of classes. We could use the toString method and override that method for all types that need to be saved. I think this may be the best option. Another option would be to have a utility class of static methods that takes an object, like inventory, and converts it to a string.

So in this example you would add the toString() method to the Inventory class and that would return the JSONString?

Oh you're referring to the class, JSONString, I interpreted it as a JSON formatted string. In that case, the toString() method won't work in this situation. So that leaves us with some type of external class or utility that provides the methods needed to save and load information. Creating a utility class that has static methods that save and load different types would work in this situation I believe

Yes, sorry for my explaination. With JSONString I just meant a normal String in the JSON format.

This is what I got now: https://github.com/AppPhil/TerraLegion/commit/f9ecddaa39d2c2a73a00d36d57ac1be7c2467861

Looks great! You'd have to either create a new branch to create a separate merge or remove the code that doesn't have to do with the pull, place it somewhere else for the time being, pull down the current version of those files that were just moved, and then commit.

Can you help me with that? I don't understand what to do.

 I thought there were other files you didn't want to be included in the pull. You should just push the new code and it will update the pull request.

Wait there are other files that shouldn't be included in the pull.

Right, those should be updated when you submit the pull request because it will find that those changed.

I think I know the problem. I deleted the fork where I opened this pull here. That might be the problem.

Oh yes, it says that the merge is from an unknown branch. You'll need to submit a new pull.

Okay I will do. Sorry for this mistake.

Not a problem.


can't launch app on Linux

Describe the bug
☁  RoslynPadAvalonia  dotnet RoslynPad.dll
Unhandled exception. System.InvalidOperationException: Operation is not valid due to the current state of the object.
   at RoslynPad.UI.OpenDocumentViewModel.set_Platform(ExecutionPlatform value) in D:\src\gh\aelij\roslynpad\src\RoslynPad.Common.UI\ViewModels\OpenDocumentViewModel.cs:line 453
   at RoslynPad.UI.OpenDocumentViewModel.Initialize(DocumentId documentId, Action`1 onError, Func`1 getSelection, IDisposable viewDisposable) in D:\src\gh\aelij\roslynpad\src\RoslynPad.Common.UI\ViewModels\OpenDocumentViewModel.cs:line 615
   at RoslynPad.DocumentView.OnDataContextChanged(Object sender, EventArgs args) in D:\src\gh\aelij\roslynpad\src\RoslynPad.Avalonia\DocumentView.axaml.cs:line 60
   at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__128_0(Object state)
   at Avalonia.Threading.SendOrPostCallbackDispatcherOperation.InvokeCore() in /_/src/Avalonia.Base/Threading/DispatcherOperation.cs:line 392
   at Avalonia.Threading.DispatcherOperation.Execute() in /_/src/Avalonia.Base/Threading/DispatcherOperation.cs:line 262
   at Avalonia.Threading.Dispatcher.ExecuteJob(DispatcherOperation job) in /_/src/Avalonia.Base/Threading/Dispatcher.Queue.cs:line 122
   at Avalonia.Threading.Dispatcher.ExecuteJobsCore() in /_/src/Avalonia.Base/Threading/Dispatcher.Queue.cs:line 153
   at Avalonia.Threading.Dispatcher.OnOSTimer() in /_/src/Avalonia.Base/Threading/Dispatcher.Timers.cs:line 130
   at Avalonia.X11.X11PlatformThreading.RunLoop(CancellationToken cancellationToken) in /_/src/Avalonia.X11/X11PlatformThreading.cs:line 162
   at Avalonia.Threading.DispatcherFrame.Run(IControlledDispatcherImpl impl) in /_/src/Avalonia.Base/Threading/DispatcherFrame.cs:line 117
   at Avalonia.Threading.Dispatcher.PushFrame(DispatcherFrame frame) in /_/src/Avalonia.Base/Threading/Dispatcher.MainLoop.cs:line 53
   at Avalonia.Threading.Dispatcher.MainLoop(CancellationToken cancellationToken) in /_/src/Avalonia.Base/Threading/Dispatcher.MainLoop.cs:line 80
   at Avalonia.Controls.ApplicationLifetimes.ClassicDesktopStyleApplicationLifetime.Start(String[] args) in /_/src/Avalonia.Controls/ApplicationLifetimes/ClassicDesktopStyleApplicationLifetime.cs:line 127
   at Avalonia.ClassicDesktopStyleApplicationLifetimeExtensions.StartWithClassicDesktopLifetime(AppBuilder builder, String[] args, ShutdownMode shutdownMode) in /_/src/Avalonia.Controls/ApplicationLifetimes/ClassicDesktopStyleApplicationLifetime.cs:line 220
   at RoslynPad.Program.Main(String[] args) in D:\src\gh\aelij\roslynpad\src\RoslynPad.Avalonia\Program.cs:line 13
[1]    9108 IOT instruction (core dumped)  dotnet RoslynPad.dll

To Reproduce
dotnet RoslynPad.dll
Version

OS:

☁  RoslynPadAvalonia  dotnet --info
.NET SDK:
 Version:   7.0.113
 Commit:    e24ee34c8e

Runtime Environment:
 OS Name:     linuxmint
 OS Version:  21.2
 OS Platform: Linux
 RID:         ubuntu.22.04-x64
 Base Path:   /usr/lib/dotnet/sdk/7.0.113/

Host:
  Version:      7.0.13
  Architecture: x64
  Commit:       3f73a2f186

.NET SDKs installed:
  7.0.113 [/usr/lib/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 7.0.13 [/usr/lib/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 7.0.13 [/usr/lib/dotnet/shared/Microsoft.NETCore.App]

Other architectures found:
  None

Environment variables:
  Not set

global.json file:
  Not found

Build (or commit ID if built from source): Release 18

Duplicate of #470

Duplicate of #470

ok... but how do I fix it?

It's already fixed in the main branch. Will be included in the next release.

It's already fixed in the main branch. Will be included in the next release.

so there is no way to make it work today?

It appears /usr/lib64/dotnet was added to the dotnetPaths but not the '/usr/lib/dotnet' (inside PlatformsFactory.cs). So still get the same error using the main branch from yesterday. adding /usr/lib/dotnet to dotnetPaths allows me to launch RoslynPad in debug but not in release (another story :smile:).

@tomuxmon Can you please submit a PR to add the path?


Create configuring-npm-for-use-with-github-packages.md

Why:

What's being changed:

Check off the following:

[x] All of the tests are passing.
[x] I have reviewed my changes in staging. (look for the deploy-to-heroku link in your pull request, then click View deployment)
[x] For content changes, I have reviewed the localization checklist
[x] For content changes, I have reviewed the Content style guide for GitHub Docs.

This pull request is blank and appears have been opened accidentally. I'm going to close it now, but feel free to open an issue or ask any questions in discussions!

It's a bot, it's following this accout :
https://github.com/typno8-nEbtos-hibmik?tab=following
which is also a spam bot or worse:
https://github.com/dotnet/runtime/issues/45953
https://github.com/dotnet/runtime/issues/44958#issuecomment-743096899


[FP]: use a negative rule for cpe:2.3:a:sms:sms:::::::: suppression matching for Maven artifacts

Package URl
pkg:maven/
CPE
cpe:2.3:a:sms:sms::::::::
CVE
CVE-2005-2311
ODC Integration
{"label"=>"Gradle Plugin"}
ODC Version
11.1.1
Description
The CVE is due to https://bugs.gentoo.org/97187 ; it's 20 years old 2.1 base score advisory, and no maven package exists that physically can have it, thus an umbrella suppression for pkg:maven can be added.
Example rule:
    <suppress base="true">
        <notes><![CDATA[
        FPs from #2995 (sms)
        ]]></notes>
        <packageUrl regex="true">^pkg:maven\/.*$</packageUrl>
        <cpe>cpe:/a:sms:sms</cpe>
    </suppress>

I'm more than willing to do the PR here etc. if that's of any use.

@FyiurAmron The sms:sms appears to be an issue only for proprietary libraries. Those are up to the end-users and prorietary vendors to fix with their own proprietary suppression files. Hosted-suppressions file deals with suppression of improper CPEs for publicly available/consumable libraries.

@aikebah not really, bear with me.

the current resolution of CPE is improper, and this issue falls under what you say: no Maven artifact exists that has this vulnerability, because it wasn't related to Maven ecosystem or libraries at all. Checking the actual vuln report makes it apparent, it affected only app-mobilephone/sms package in Gentoo ecosystem, with a score of 2.1, 20 years ago. That's it. Matching any Maven repo by CPE is thus simply invalid.

the argument about public libraries doesn't strictly make sense in general; anyone can make a Maven lib publicly available, and if the rule makes no sense (see 1.), easily prove the point you raised completely factually invalid.

the sms word is common enough by itself in package names. This should make it obvious that adding an upstream suppression rule after considering the actual vuln report is reasonable by itself, even if no package is falsely marked by the scanner yet (which is however not the case here - see below)

you're wrong in the exact sense as well. There are currently long-existing publicly available libraries that are affected, just not a single person reported them yet before me. Some of them by well-known and reputable vendors, some by random people and companies publishing their artifacts. Doing a quick query on MVN by youself (e.g. https://search.maven.org/search?q=a:sms etc.) will probably provide you with some offenders, I can provide one from the top of my head from a PoC project (I can provide a GH link if you want, but you can just paste those impl refs to any Java project of your choosing and do a depcheck):

sms-0.0.2.aar<EMAIL_ADDRESS>cpe:2.3:a:sms:sms:0.0.2:*:*:*:*:*:*:*) : CVE-2005-2311
sms-0.3.0.jar<EMAIL_ADDRESS>cpe:2.3:a:grpc:grpc:0.3.0:*:*:*:*:*:*:*, cpe:2.3:a:sms:sms:0.3.0:*:*:*:*:*:*:*) : CVE-2017-7860, CVE-2017-7861, CVE-2017-8359, CVE-2017-9431, CVE-2020-7768, CVE-2023-33953, CVE-2023-44487, CVE-2023-32732, CVE-2005-2311
sms-1.0.0-beta10.jar<EMAIL_ADDRESS>cpe:2.3:a:sms:sms:1.0.0.eta10:*:*:*:*:*:*:*) : CVE-2005-2311
sms-1.3.3.jar<EMAIL_ADDRESS>cpe:2.3:a:sms:sms:1.3.3:*:*:*:*:*:*:*) : CVE-2005-2311
sms-1.4.2.jar<EMAIL_ADDRESS>cpe:2.3:a:grpc:grpc:1.4.2:*:*:*:*:*:*:*, cpe:2.3:a:sms:sms:1.4.2:*:*:*:*:*:*:*) : CVE-2020-7768, CVE-2023-33953, CVE-2023-44487, CVE-2023-32732, CVE-2005-2311
sms-1.8.3.jar<EMAIL_ADDRESS>cpe:2.3:a:sms:sms:1.8.3:*:*:*:*:*:*:*) : CVE-2005-2311
sms-jvm-1.3.95.jar<EMAIL_ADDRESS>cpe:2.3:a:sms:sms:1.3.95:*:*:*:*:*:*:*) : CVE-2005-2311
sms-metadata-1.3.95.jar<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>cpe:2.3:a:sms:sms:1.3.95:*:*:*:*:*:*:*) : CVE-2005-2311

Consider the default CPE matching rule: anything *sms that's before 1.9.2 will be triggered here I think.
Is this enough or do I need to find more examples? If so, how many do you need to feel convinced here?

@FyiurAmron those samples are enough...
The reason for me responding 'appears to be an issue only for proprietary libs' is because we've not received any FP reports apart from the earlier FP report #2995 that was talking about company-internal libraries hitting it. Those cases fall under the "that's due to how dependencycheck works; for internal libraries you'll have to mitigate the FPs resulting from it with your own suppression filter" clause.
Your response has given enough examples to warrant also adding your suggested sms fix to the list as there are multiple public libraries. Your initial report gave no such examples, leaving only the earlier reported private libraries as suspects.

Miss-tagged the ticket reference, but a manual suppression has been pushed as f204335

@aikebah sure, my point here being mainly that any CPE with a common English word or tech name (be it the actual "sms" or "grpc" in this case, but it can obviously be just "test", "mail", "web", you name it) suffers from the very same problem. That's the point 3 in the reply/rant above. I am aware of the architectural limitations for depcheck due to how CPEs are created (i.e. the mapping to packages is done via string comparison and not precise co-ords), but I'd say that if a CPE with such "common" co-ords is reported as existing, it warrants at least a cursory investigation before a report is being rejected, on the above grounds (i.e. extremely high change of common real-life FPs existing, even if not reported explicitly). Obviously, even for relatively precise CPEs one can have the completely opposite case (e.g. some obscure private package that triggers a FP due to using a name of vulnerable tech as artifact name), but I'd say that it's the CPE form that should be the hint here - if it would be cpe:2.3:a:common:common, I'd assume it creates hundreds of real-life FPs already, even if no-one posted any.
That aside, many thanks for your help here, both me and the vuln metrics of my projects will really appreciate the effort :)

There will no doubt be more of such occasions, which is the unfortunate side-effect of having to use CPE and the many single common english words used for both vendor and product in the CPEs that the NIST NVD has used over time.
For stronger bindings yielding fewer FPs one would have to resort to paid vulnerability scanners that can spend time and money building and maintaining their own proprietary mapping database from known library identifiers to vulnerabilities (or CPE coordinates).
Given the known limitations ODC has served me surprisingly well, though your mileage may vary, as its accuracy is highly depending on the libraries that you actually encounter and the level of overlap of their evidences with vendor- and product strings in the entire set of application CPEs found in the NVD.
In my day-job the rate of FPs due to improper CPEs is relatively low. Most of my encountered FP issues are on the 'large framework with multiple libs from which we use a non-vulnerable subset' and 'vendor-supported security patched library of an older open-source major/minor' (e.g. the -redhat-<nn> patch suffix versions)
At least these suppressions are now published in the hostedSuppressions, so your vuln metrics rate should improve on the next scan.


add box_architecture config to parameters

Vagrant recently added a box_architecture flag, which defaults to the current platform, which breaks my need to test amd64 images on a M2/3/4-based MacOS device.  This patch adds the glue needed to pass the required architecture down to the lower-level VagrantFile
For reference:
https://github.com/hashicorp/vagrant/commit/51adb125477b50e5acce6e6ad39e38d7b3cd7b3b

I dont seem to have access to add the labels, can someone add 'enhancement' please.


JustifyText::Center doesn't place a text in the center of Text2dBounds

Bevy version
v0.14.0
What you did

Tried to place a text in the center of some bounds (Text2dBounds)

use bevy::prelude::*;
use bevy::sprite::Anchor;
use bevy::text::Text2dBounds;

fn main() {
    App::new()
        .add_plugins(DefaultPlugins)
        .add_systems(Startup, setup)
        .run();
}

fn setup(mut commands: Commands) {
    commands.spawn(Camera2dBundle::default());

    commands.spawn(Text2dBundle {
        text: Text::from_section(
            "hello",
            TextStyle {
                font_size: 60.0,
                ..default()
            },
        )
        .with_justify(JustifyText::Center),
        text_2d_bounds: Text2dBounds {
            size: Vec2::new(600., 200.),
        },
        text_anchor: Anchor::Center,
        ..default()
    });
}

What went wrong
The text ("hello" in the code above) is not placed at the center, but at the right.

In v0.13.2, the text is rendered as expected.

@m2ym out of interest does the response https://github.com/bevyengine/bevy/issues/14251#issuecomment-2218808296 help in your case?

This is a bug, though it's not to do with JustifyText::Center which shouldnt effect single lines of text. The Anchor component is what controls the text's alignment relative to the position of its transform.
The Text2dBounds constraint is the problem. With this the text is centered in Bevy 14 like in the second screenshot:
fn setup(mut commands: Commands) {
    commands.spawn(Camera2dBundle::default());

    commands.spawn(Text2dBundle {
        text: Text::from_section(
            "hello",
            TextStyle {
                font_size: 60.0,
                ..default()
            },
        ),
        text_anchor: Anchor::Center,
        ..default()
    });
}

This is really odd:
use bevy::color::palettes;
use bevy::math::vec2;
use bevy::prelude::*;
use bevy::sprite::Anchor;
use bevy::text::Text2dBounds;

fn main() {
    App::new()
        .add_plugins(DefaultPlugins)
        .add_systems(Startup, setup)
        .run();
}

fn setup(mut commands: Commands) {
    commands.spawn(Camera2dBundle::default());

    let size = vec2(600., 200.);
    commands.spawn(SpriteBundle {
        sprite: Sprite {
            color: palettes::css::NAVY.into(),
            custom_size: Some(size),
            anchor: Anchor::Center,
            ..Default::default()
        },
        transform: Transform::from_translation(300. * Vec3::Y),

        ..Default::default()
    });

    commands.spawn(SpriteBundle {
        sprite: Sprite {
            color: palettes::css::NAVY.into(),
            custom_size: Some(size),
            anchor: Anchor::Center,
            ..Default::default()
        },
        ..Default::default()
    });

    commands.spawn(Text2dBundle {
        text: Text::from_section(
            "hello",
            TextStyle {
                font_size: 60.0,
                ..default()
            },
        )
        .with_justify(JustifyText::Center),
        text_2d_bounds: Text2dBounds {
            size: Vec2::new(600., 200.),
        },
        text_anchor: Anchor::Center,
        ..default()
    });
}

As a temporary fix you can add this system to PostUpdate after update_text2d_layout:
fn fix_text2d_layout(
    mut query: Query<&mut TextLayoutInfo, (Changed<TextLayoutInfo>, With<Anchor>)>,
) {
    for mut layout_info in query.iter_mut() {
        let mut min_x = f32::MAX;
        for glyph in layout_info.glyphs.iter() {
            min_x = (glyph.position.x - 0.5 * glyph.size.x).min(min_x);
        }

        for glyph in layout_info.glyphs.iter_mut() {
            glyph.position.x -= min_x;
        }
    }
}

Should work with both bevy 0.14 and main.

@ickshonpe The temporary fix works. Thanks for your work and a very quick response!


Feature Proposal: createThemedVariant

Is your feature request related to a problem? Please describe.
One thing I find myself doing regularly with stitches is mapping through themed values to generate my variants
For example, let's look at this demo grid style which reduces theme.space into a gap variant:
import type * as Stitches from '@stitches/core';
import { css, config } from "./stitches.config";

const { space } = config.theme;

const gap = Object.keys(space).reduce(
  (acc, cv) => ({
    ...acc,
    [cv]: { $$gridGap: `$space$${cv}` },
  }),
  {}
) as { [key in keyof typeof space]: Stitches.CSS };

export const grid = css({
  display: "grid",
  gap: "$$gridGap",
  variants: {
    gap,
  },
  defaultVariants: {
    gap: 4,
  },
});

Which can then be used like so:
interface IGridProps
  extends React.HTMLAttributes<HTMLDivElement>,
    Stitches.VariantProps<typeof grid> {}

const Grid: React.FC<IGridProps> = ({ className, gap, ...props }) => (
  <div className={grid({ className, gap })} {...props} />
);

This solution's OK for one or two components, but it can become tedious and might not be immediately obvious for those expecting Stitches to offer "dynamic variants" from other run-time styling libraries.
Describe the solution you'd like
I'm not super keen on this exact proposed API, but I think something like this could enable users to roll their own themed variants (without having to worry about some of the runtime concerns that come with dynamic themed variants)
import type * as Stitches from "@stitches/core";
import { css, config, createThemedVariant } from "./stitches.config";

export const grid = css({
  display: "grid",
  gap: "$$gridGap",
  variants: {
    gap: createThemedVariant(
      // theme key
      "space",
      // variant style (with themed value)
      (spaceKey) => ({
      $$gridGap: `$space$${spaceKey}`,
    })),
  },
  defaultVariants: {
    gap: 4,
  },
});

Describe alternatives you've considered
An alternative approach to #721
Additional context
This issue was raised following an informal chat of ideas with @peduarte

The only thing I don't like about this solution is that it limits the usage to theme keys, while cases, where you want property values, are not covered, like in this example https://github.com/modulz/stitches/pull/721#issuecomment-921927344.
Obviously, your proposal is already a better stage than what we have today, but #721 seems like a more complete solution to dynamic variants


add files from jupyterlite-xeus

this is building ontop of the PR #2

To try to debug this you need to build jupyterlite like this, where <REPO_DIR> is the dir of this repo
jupyter lite build --XeusAddon.environment_file=<REPO_DIR>/env.yaml

@trungleduc still the same :/

Or you can try the second solution renaming the output of Webpack to another name https://github.com/jupyterlite/xeus/pull/4#discussion_r1422581031

So just to clarify. The webworker code is picked up by webpack and processed.
But when we enter the webworker code it fails inside the worker with that:
213.c1afc05d321777c556aa.js?v=c1afc05d321777c556aa:224 Uncaught (in promise) TypeError: __webpack_modules__[moduleId] is not a function
    at __webpack_require__ (213.c1afc05d321777c556aa.js?v=c1afc05d321777c556aa:224:41)
    at 213 (213.c1afc05d321777c556aa.js?v=c1afc05d321777c556aa:8:65)
    at __webpack_require__ (213.c1afc05d321777c556aa.js?v=c1afc05d321777c556aa:224:41)
    at 213.c1afc05d321777c556aa.js?v=c1afc05d321777c556aa:239:85
    at __webpack_require__.O (213.c1afc05d321777c556aa.js?v=c1afc05d321777c556aa:269:23)
    at __webpack_require__.x (213.c1afc05d321777c556aa.js?v=c1afc05d321777c556aa:240:54)

I assume this is when it tries to load the dependencies we use inside the worker, ie that stuff
import { expose } from 'comlink';

import {
  DriveFS,
  DriveFSEmscriptenNodeOps,
  IEmscriptenFSNode,
  IStats
} from '@jupyterlite/contents';

your build:worker step is not called anywhere? I should be a part of the build process.

your build:worker step is not called anywhere? I should be a part of the build process.

I played around with that as we used to have a dedicated step for this in the other repos. But the reason to have this as a separate step was that worker.ts did not used to be part of the repository. So I hope that we can drop that again.

@trungleduc ah ok, so I start to understand. The worker.webpack.config.js is not magically picked up.  And If I don't call the manual webpack step for the worker it does not make sense at all to have this worker.webpack.config.js?

No, you can not drop that, you want to build worker.ts with webpack separately because we need to bundle all its dependencies into the worker.js file so that you won't have the import errors on run time.

No, you can not drop that, you want to build worker.ts with webpack separately because we need to bundle all its dependencies into the worker.js file so that you won't have the import errors on run time.

Ok, now things start to make sense again.
(assume maximum stupidity here...I don't know what I am doing here most the time ;) )

@jtpio  we could merge this now. (maybe not in main?) as it is in a working state again.
Still needs a lot of work to be production ready

@jtpio we could merge this now. (maybe not in main?) as it is in a working state again. Still needs a lot of work to be production ready

Sure, if it helps iterating on it. Just left a few minor inline comments.
Also wondering if we could improve the initial blocking HTTP request for fetching the json file. Network (or the static HTTP server) can be slow, and this could increase the time it takes for the application to start.

@jtpio we could merge this now. (maybe not in main?) as it is in a working state again. Still needs a lot of work to be production ready

Sure, if it helps iterating on it. Just left a few minor inline comments.
Also wondering if we could improve the initial blocking HTTP request for fetching the json file. Network (or the static HTTP server) can be slow, and this could increase the time it takes for the application to start.

I agree that its unsexy, but the json files are all so minuscule that this will not be a big issue

Maybe there is a way to inline the kernels at jupyter lite build time? If the kernels are all known at jupyter lite build time.

Maybe there is a way to inline the kernels at jupyter lite build time? If the kernels are all known at jupyter lite build time.

Yeah they are all known at jupyter lite build time.
Anything else would mean downloading kernels on the fly with query parameters or smth like that -- but no, we do not do shenanigans like that so far.

OK so I guess we can look into this separately.
And also fix the remaining CI failure in the next iteration.


run sql sricpt

hi!
kyuubi can run spark sql sript now ? i try to run spark sql script and Passing parameters to script  but not runing. is issues ?

yes

i how to solve this problem ？i want to use kyuubi run spark sql script need Passing parameters by script. i envirement is CDH 5.14 .

read the doc first

can you give me a doc url ?


fix(@schematics/angular): platform-browser-dynamic as dev dependency in standalone apps

PR Checklist
Please check to confirm your PR fulfills the following requirements:

[x] The commit message follows our guidelines: https://github.com/angular/angular-cli/blob/main/CONTRIBUTING.md#-commit-message-guidelines
[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[X] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Other... Please describe:

What is the current behavior?
The generated application with --standalone has @angular/platform-browser-dynamic as a dependency but does not use it. It is only useful for ng test
What is the new behavior?
When using the --standalone flag, @angular/platform-browser-dynamic is added a dev dependency
Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information

Thanks for this change. However for the time being we decided that we should keep things as is.


Stackdriver: list descending entries fails after a short moment

OS type and version: macOS 10.13.4
Python version and virtual environment information: Python 3.6.5, venv using pipenv
google-cloud-python version: 0.33.1
Stacktrace if available:

Stacktrace

Traceback (most recent call last):
  File "/Users/iddan/.local/share/virtualenvs/stackdriver-cli-7guWFJlM/lib/python3.6/site-packages/google/gax/retry.py", line 121, in inner
    return to_call(*args)
  File "/Users/iddan/.local/share/virtualenvs/stackdriver-cli-7guWFJlM/lib/python3.6/site-packages/google/gax/retry.py", line 68, in inner
    return a_func(*updated_args, **kwargs)
  File "/Users/iddan/.local/share/virtualenvs/stackdriver-cli-7guWFJlM/lib/python3.6/site-packages/grpc/_channel.py", line 500, in __call__
    return _end_unary_response_blocking(state, call, False, None)
  File "/Users/iddan/.local/share/virtualenvs/stackdriver-cli-7guWFJlM/lib/python3.6/site-packages/grpc/_channel.py", line 434, in _end_unary_response_blocking
    raise _Rendezvous(state, None, None, deadline)
grpc._channel._Rendezvous: <_Rendezvous of RPC that terminated with (StatusCode.RESOURCE_EXHAUSTED, Insufficient tokens for quota 'logging.googleapis.com/read_requests' and limit 'ReadRequestsPerMinutePerProject' of service 'logging.googleapis.com' for consumer 'project_number:307713667560'.)>
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/runpy.py", line 193, in _run_module_as_main
"main", mod_spec)
File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/Users/iddan/stackdriver-cli/stackdriver/cli.py", line 11, in
for entry in client.list_entries(order_by=DESCENDING):
File "/Users/iddan/.local/share/virtualenvs/stackdriver-cli-7guWFJlM/lib/python3.6/site-packages/google/api_core/page_iterator.py", line 186, in _items_iter
for page in self._page_iter(increment=False):
File "/Users/iddan/.local/share/virtualenvs/stackdriver-cli-7guWFJlM/lib/python3.6/site-packages/google/api_core/page_iterator.py", line 223, in _page_iter
page = self._next_page()
File "/Users/iddan/.local/share/virtualenvs/stackdriver-cli-7guWFJlM/lib/python3.6/site-packages/google/api_core/page_iterator.py", line 430, in _next_page
items = six.next(self._gax_page_iter)
File "/Users/iddan/.local/share/virtualenvs/stackdriver-cli-7guWFJlM/lib/python3.6/site-packages/google/gax/init.py", line 465, in next
response = self._func(self._request, **self._kwargs)
File "/Users/iddan/.local/share/virtualenvs/stackdriver-cli-7guWFJlM/lib/python3.6/site-packages/google/gax/api_callable.py", line 376, in inner
return a_func(*args, **kwargs)
File "/Users/iddan/.local/share/virtualenvs/stackdriver-cli-7guWFJlM/lib/python3.6/site-packages/google/gax/retry.py", line 127, in inner
' classified as transient', exception)
google.gax.errors.RetryError: RetryError(Exception occurred in retry method that was not classified as transient, caused by <_Rendezvous of RPC that terminated with (StatusCode.RESOURCE_EXHAUSTED, Insufficient tokens for quota 'logging.googleapis.com/read_requests' and limit 'ReadRequestsPerMinutePerProject' of service 'logging.googleapis.com' for consumer 'project_number:307713667560'.)>)

6. Steps to reproduce

Install google cloud python
Write script importing stackdriver list_entries() with order_by=DESCENDING
Run for a short moment until it crashes

Code example

from google.cloud import logging
from google.cloud.logging import DESCENDING

client = logging.Client.from_service_account_json("credentials.json")

for entry in client.list_entries(order_by=DESCENDING):
    print(entry)

I'm trying to view logs after a very strict filter in my local console. I don't see why when using order_by DESCENDING while using an iterator would hit the quota. Am I doing something wrong?

@iddan Your example doesn't show any filtering at all.
@liyanhui1228 Does anything about order_by DESCENDING trigger extra quota usage?

Read requests per minute per user is 60 by default. It's possible that it still hit the quota after you apply your filter. The order_by field doesn't increase the quota usage.

What I'm really looking for is tailing logs. I've managed to properly tail logs but I got really surprised I'm allowed to call list_entries() once a second. Is there a different method? How does the Logs Viewer stream logs?

@iddan We see this error occasionally in our system tests (#5303).  I've just committed a fix there which adds ResourceExhausted to the set of manual retries for tests which call logger.list_entries (PR #5486).
Are you using gRPC (it is on by default unless you set the GOOGLE_CLOUD_DISABLE_GRPC environment variable)?  If so, we should probably update the gRPC configuration to ensure that ResrouceExhausted is considered one of the idempotent response codes for automatic retry when running under gRPC.

I use gRPC. My problem is I tried to use this API for constant tailing (similar to what the Stackdriver UI does) and I couldn't find a better suiting API to use.

If you need to call the API more than once a second, you could wrap it using google.api_core.retry.Retry, which adds retry with exponential backoff for transient errors. E.g.:
from google.api_core.retry import Retry

retry_list_entries = Retry()(client.list_entries)

for entry in retry_list_entries(order_by=DESCENDING):
    print(entry)

Note that this will be expensive for any project which accumulates a large number of log entries over time:  a real-world example would likely filter the log entries, and maybe only list the N most recent on each call.

and maybe only list the N most recent on each call.
How can I do that?

List the N most recent log entries:
from google.api_core.retry import Retry

def list_recent_entries(client, num_entries=10):
    retry_list_entries = Retry()(client.list_entries)
    count = 0
    for entry in retry_list_entries(order_by=DESCENDING):
        print(entry)
        count += 1
        if count > num_entries:
            break

@tseaver not sure Retry will do so if 403 rateLimitExceeded is hit.
That error is currently not listed as transient API error as per https://google-cloud-python.readthedocs.io/en/latest/core/retry.html?highlight=retry#google.api_core.retry.if_transient_error
Would be good to add but in the meantime, I guess you can pass the error as custom predicate but not sure as that error type is not defined in the library (at best it matches 403 FORBIDDEN)

Eventually just moved to another logs product with a better UX instead of extending Stackdriver

@iddan I'm sorry we weren't able to work out how to address your usecase better with GCP logging.


[10.x] Number set Default Precision

While implementing the Number helper in a large application, I've found repeating myself repeating the precision parameter, for example Number:format(123.45, precision: 2).
This PR introduces a usePrecision method which allows to set the default precision.
Number::usePrecision(2);

After setting the default precision:
Number::format(100);        // 100.00
Number::percentage(100);    // 100.00%
Number::fileSize(2048);     // 2.00 KB
Number::forHumans(1000);    // 1.00 thousand
Number::abbreviate(1000);   // 1.00K

Why not Number::precision(2);?

Why not Number::precision(2);?

I used the same pattern as Number::useLocale() but happy to rename it if it makes more sense 😀

Why not Number::precision(2);?

I used the same pattern as Number::useLocale() but happy to rename it if it makes more sense 😀

Make total sense.

Will there be also a config/app.php value that can be set and that will be taken into account?

Will there be also a config/app.php value that can be set and that will be taken into account?

It would work the same way as useLocale does, you can set it up with the AppServiceProvider.


Alpine linux ALSA gpg fails due to path length

Fixes https://github.com/adoptium/temurin-build/issues/3642
Need to use /tmp for Alpine

Successful test: https://ci.adoptium.net/job/build-scripts/job/jobs/job/jdk17u/job/jdk17u-alpine-linux-x64-temurin/403/


No such module 'Smile_Identity_SDK'

After following the instructions on integrating the sdk to ios, I got the following error when building my project.
No such module 'Smile_Identity_SDK'

Hello @tobilastik kindly confirm you got you "Smile_Identity_SDK.framework" for your account from the Smile Identity team


OSM troubleshooting

Hello,
When I select an OSM link that has been saved in a google doc, the link sends me to the location however when I open different node links to other locations OSM sends me to the exact same location I had before. Has anyone experienced a similar issue or know how I might resolve this?

@VernonLangley Can you provide examples of these links?

@quincylvania https://www.openstreetmap.org/edit?node=42852478, https://www.openstreetmap.org/edit?node=42524611.

I ended fixing the problem. I went to My Setting and and made ID my preferred Editor.

@VernonLangley Great! I couldn't reproduce this issue so that makes sense.


sql/(plan,expression): implement String method to make tree printable

Closes #95
Closes #108

Implements String method on all sql.Nodes.
Implements String method on all sql.Expressions.
Remove Name method from sql.Expressions.
Only leave Name in expressions that will be sql.Nameable.
Created TreePrinter to print trees with a node and children.

Don't worry, the fixes in gitquery are easy and I will have them right away.


Another DB redesign

Right now, the DB is denormalised to a certain extent which is creating scaling problems with the constantly changing landscape of Elite. Perhaps the db should be fully normalised with master tables for system, faction and stations, a mapping table between system and faction and a full history table for each.
But that still begs the question how can we maintain the history of the mapping between system and faction. Will need to think about these in V6.
As for the data, I can try replaying the data from https://edgalaxydata.space/EDDN/. The oldest data I have is from 8/10/2017 whereas the oldest data in edgalaxydata is 8/2017

Make sure to index coordinates so that it can utilised while searching systems in bounding boxes.


Using elevation property in MDGridlayout raises NotImplemeted Error

MDGridlayout:
    elevation: dp(12)

raises
"KivyMD:\n"
NotImplementedError: KivyMD:
If you see this error, this means that either youre using CommonElevationBehavior directly or your 'shader' dont have a _draw_shadow instruction, remember to overwrite this functionto draw over the image context. the figure you would like.

OS: linuxmint
Python: 3.7.10
Kivy: 2.0.0
KivyMD: 0.104.2.dev0, git-Unknown, 2021-03-22

Since a month ago, each widget that inherits from the color behavior will have the backend for elevation behavior, but only the base, you'll need to add a "shader" to the widget. This is implemented this way to avoid to every widget to cast a shadow (wich takes a lot of processing resources)
you can use any of the following shaders with your class
__all__=[
    "CommonElevationBehavior", # this is the current inheritance to every widget that inherits from backgroundcolor_behavior
    "RectangularElevationBehavior", # real time shadow casting
    "CircularElevationBehavior", # real time shadow casting
    "RoundedRectangularElevationBehavior", # real time shadow casting
    "ObservableShadow", # proposed, but not implemented
    "FakeRectangularElevationBehavior", # lightweight shadow casting (for squares and rectangular elements)
    "FakeCircularElevationBehavior", # lightweight shadow casting (for circular elements)
]
```
see also
https://kivymd.readthedocs.io/en/latest/behaviors/elevation/

@podraco thank u so much for your answer, can use RectangularElevationBehaviour on mobile phones lf l want widgets with elevation

Yes, but I would recommend you to use the fake classes, since móvil devices are quite slow.

@podraco okay thanks


Replace Pipenv with poetry

Please test if this is working for everyone

Works well for me

DO NOT MERGE, changing timeout for test!!!


bug: Transparency issues with callouts

Neovim version (nvim -v)
0.10.0
Operating system
MacOS
Terminal emulator / GUI
WezTerm
Describe the bug
With a transparent terminal, I noticed that callout "headers" have a transparent background, while the callouts themselves at a background color.
Expected behavior
The background to be transparent, or an option that allows me to turn on and off the background for block quotes and callouts.
Healthcheck output
==============================================================================
render-markdown: require("render-markdown.health").check()

render-markdown.nvim [version] ~
- OK plugin 6.0.13
- OK neovim >= 0.10

render-markdown.nvim [configuration] ~
- OK valid

render-markdown.nvim [nvim-treesitter] ~
- OK installed
- OK markdown: parser installed
- OK markdown: highlight enabled
- OK markdown_inline: parser installed
- OK markdown_inline: highlight enabled
- WARNING latex: parser not installed
  - ADVICE:
    - Disable LaTeX support to avoid this warning by setting { latex = { enabled = false } }

render-markdown.nvim [executables] ~
- OK latex2text: installed

render-markdown.nvim [conflicts] ~
- OK headlines: not installed
- OK obsidian: not installed

Plugin configuration
return {
  "MeanderingProgrammer/render-markdown.nvim",
  opts = { code = { style = "language" } },
  dependencies = { "nvim-treesitter/nvim-treesitter", "nvim-tree/nvim-web-devicons" }, -- if you prefer nvim-web-devicons
  ft = { "markdown" },
  cmd = { "RenderMarkdown" },
}

Confirmations

[X] I have provided markdown text for any screenshots used in my description & understand that my issue will be closed if I have not

Additional information
This background is also present with block quotes, which leads me to believe this to be a problem with treesitter. Here are some screenshots:

> This is a test blockquote.

> [!WARNING] This might be dangerous!
> be careful!

I'm using NvChad, so I'm not sure what is the best way to isolate this plugin. What I ended up doing to see if another plugin is causing this is to keep all the builtin plugins and render-markdown, and skip all my other plugins.
With only this plugin enabled, I can still reproduce this.
Sorry in advance if this should be reported in treesitter markdown

This is definitely not an issue with treesitter so this is the right place to figure out what's going on :)
Which color scheme do you use?
For the callout headers by default we use the various Diagnostic highlight groups, so for a warning we set DiagnosticWarn. In this case it looks like your color scheme does not set a background for diagnostics, which makes sense and is why the background is transparent.
For the quote body we actually don't set any highlight at all, only for the starting > character. So if you disable this plugin and write a block quote I imagine you'll see the same non-transparent background. Which is kind of strange, I would assume users with transparent backgrounds would want quotes to also have a transparent background, since multi line block quotes would look strange otherwise.
The highlight group for block quotes defined by nvim-treesitter is @markup.quote.markdown. So whatever your color scheme sets this to is what determines the behavior of the block quote body. You can either manually overwrite this in your config, or potentially the color scheme allows you to set some configuration option that makes this happen.

I couldn't find @markup.quote.markdown, but @markup.quote exists for me and I think that's what's causing the background color. :hi @markup.quote returns @markup.quote xxx guibg=#2e2e2e.
This should be an issue with NvChad then, because that bundles nvim-treesitter and controls the themes.
I'll report this there. Thanks for you help!


PascalCase identifiers

Hi there,
I would prefer camelCase identifiers. Who decided it should be PascalCase? Nowadays ionide complains and I'm enforcing camelCase throughout my projects.
Regards,
Henrik

In Atom? I've thought you're trying out Code ;)
Anyway, I guess you're talking about hints from FSharpLint - for VSCode you can create settings file as described in their documentation - http://fsprojects.github.io/FSharpLint/. For Atom we don't support it yet but I'm planning to add it soon [On vacation right now, so it will take a moment]
Also if it's really annoying you can turn off FSharpLint hints completely either in Atom or Code using plugin settings.

Darn, wrong repo, sorry. Yes, in Code.
My beef is with the default bring imo wrong...


Refactor notification activation tests

This PR refactors the activation tests for a more maintainable unit test in NotificationActivation scenarios.

Closing due to inactivity


Authorization Status has a wrong link for the eperson association endpoint

Describe the bug
The authn/status endpoint offers the wrong link to retrieve the eventually associated eperson.
When the user is loggedin the link point directly to the eperson URI instead to be authn/status/eperson moreover, the authn/status/eperson that is returned when no eperson is logged in return a 404 instead than a 204 No Content as by our convention
To Reproduce
Steps to reproduce the behavior:

go to https://api7.dspace.org/server/#https://api7.dspace.org/server/api/authn/status
look to the eperson link
login in the system
go again to https://api7.dspace.org/server/#https://api7.dspace.org/server/api/authn/status and look to the eperson link

Expected behavior
The eperson link should be stable and should be authn/status/eperson. The appropriate response should be returned both when an user is loggedin than when no user is loggedin (204)
Related work
Impact on the angular side must be verified

This does sound like a bug, but I'm worried about the Angular impact. Therefore, moving this to the 7.4 board so we can work on it for 7.4