Directory.listSync returns files out of order on some platforms (should be documented?)

Directory("foo").listSync() will return in alphabetical order on Windows, but out of order on Mac.
This is fine.  Just seems like the docs should mention no ordering guarantee?
https://api.flutter.dev/flutter/dart-io/Directory/listSync.html
e.g.
Order of FilesystemEntities is not guaranteed and may vary between platforms.  If you depend on order, it is recommended you sort the output, e.g.

var entities = dir.listSync().toList();
entities.sort((a, b) => a.path.compare(b.path));

var dir = Directory(dirPath)
for (var element in dir.listSync() {
print(element.path);
}
e.g. prints on Mac:
html5lib-tests/tokenizer/domjs.test
html5lib-tests/tokenizer/entities.test
html5lib-tests/tokenizer/test4.test
html5lib-tests/tokenizer/unicodeCharsProblematic.test
html5lib-tests/tokenizer/test3.test
html5lib-tests/tokenizer/contentModelFlags.test
html5lib-tests/tokenizer/test2.test
html5lib-tests/tokenizer/escapeFlag.test
html5lib-tests/tokenizer/numericEntities.test
html5lib-tests/tokenizer/README.md
html5lib-tests/tokenizer/xmlViolation.test
html5lib-tests/tokenizer/test1.test
html5lib-tests/tokenizer/unicodeChars.test
html5lib-tests/tokenizer/pendingSpecChanges.test
html5lib-tests/tokenizer/namedEntities.test
My mac version:
Dart SDK version: 2.17.0-69.2.beta (beta) (Mon Feb 14 13:41:58 2022 +0100) on "macos_x64"
I can get the Windows version if needed.

Seems this was fixed in https://github.com/dart-lang/sdk/commit/0a591de1647fb59f4a5ea97c9265c54f25cafa20 – satisfied @eseidel ?

Thanks!
On Tue, Aug 2, 2022 at 11:07 AM Kevin Moore @.***>
wrote:

Seems this was fixed in 0a591de
https://github.com/dart-lang/sdk/commit/0a591de1647fb59f4a5ea97c9265c54f25cafa20
– satisfied @eseidel https://github.com/eseidel ?
—
Reply to this email directly, view it on GitHub
https://github.com/dart-lang/sdk/issues/48621#issuecomment-1203055073,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AADU2TMB3434OGRRCPOJIQLVXFPVZANCNFSM5RF6TFUQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

Fixed in https://github.com/dart-lang/sdk/commit/0a591de1647fb59f4a5ea97c9265c54f25cafa20


Add performance transforms for localization data

euclidean error
orientation error

Localization performance metrics are calculated during runtime and are part of the data recording process now. Therefore, closing this issue.


Add initial ONNX test suite with import, compile, run scripts.

Progress on https://github.com/openxla/iree/issues/16372
Meta: this includes over 5000 generated files totaling 12MB. I'm not sure yet how much we want checked in, in which repository, and with what folder structure. Most of the diffs are in the last commit, for which it might be easier to review by looking at a few examples like this: https://github.com/ScottTodd/SHARK-TestSuite/tree/onnx-testsuite/iree_tests/onnx/node/generated/test_abs or this: https://github.com/ScottTodd/SHARK-TestSuite/tree/onnx-testsuite/iree_tests/onnx/node/generated/test_matmul_2d
This has a few components to seed a new type of test suite for IREE:

iree_tests/onnx/import_tests.py to import upstream ONNX tests into a converted directory structure that is compatible with iree-compile and iree-run-module
iree_tests/compile_tests.py to compile converted tests following that structure to .vmfb files
iree_tests/run_tests.py to run compiled .vmfb files using test inputs and expected outputs

A few things fall out from this setup naturally:

We can add new test suites or cases, including from other frameworks (PJRT/StableHLO, TFLite/TOSA, etc.), with similar generic import_* scripts or bespoke scripts for individual models of interest
We can fan out to multiple compilation and run configurations
We can run the entire suite or choose subsets
Since the suite uses release artifacts (iree-import-onnx as a preprocessing step then just iree-compile and iree-run-module), it can run on nightly releases, on presubmit artifacts, or on developer builds. It can also run using out of tree plugins and other downstream packages

This still has several rough edges. The largest missing pieces I can see now are:

Integration into GitHub Actions. We could start with an action in this repository or jump straight to an action in IREE that clones this repository and runs the tests with artifacts from a release or [pre,post]-submit run.
Wiring up to a test runner like pytest or ctest. The .py scripts currently run serially and don't report results or dump reproducer files. We will also want to parameterize each test case with passing/XFAIL configurations.

I am thinking whether to have these tests run additionally from e2eshark/run.py using -testsfile list where list is list of tests and a switch to have an integrated report run. @saienduri is adding a --mode  turbine  option to e2eshark run.py to be able to run any pytorch test with and without dtype bf16. It would give ways to test different code path like through ort ep, converting to bf16 etc. using same test in addition to integrated reporting.

Pretty good initiative. I like it a lot. I am thinking how to make it very useful for torch MLIR development flow as well. Some thoughts are as below., We can iterate on it:

Since we want this approach to scale, I am thinking not checking in the generated file but giving ability to generate the test and test output of a particular kind: onnx, torch mlir or linalg may work better. Similar approach can be applied to tests gotten from other frameworks, this also keeps the tests current. The IREE developer may want to start from torch MLIR, but a front end developer adding support for ONNX OP in torch MLIR or ONNX importer will like to have onnx test. Also, an end to end onnx test that compares the run result in ONNX runtime vs iree-run-module will be very useful.
If the ability to install tests in a particular directory is provided, then e2eshark run.py could take an option to invoke installation as onnx tests with likely with a a little tweak to generated files, and then run these tests e2e and generated compbined report. That will allow flushing out many issues in front end
Let us chat this week more on this.

At least for iree, we want test input artifacts snapshotted somewhere vs generated on every run. The CI volume and variants that need to check this stuff is too great to not have that step.
But that can be a bespoke place that gets updated with "cooked" ready to test inputs materialized.
Would be nice if this was not completely different tooling flows like it is today (versus more like priming the cache and then saving it -- same flow just starting in the middle for backend CI).

This is a really cool setup!
Here are my thoughts for overall initial CI:
I was thinking that we can leverage this setup for IREE CI (maybe add an actions workflow in IREE that clones this subfolder and runs the tests on different backends with the torch MLIR as Scott was saying). Then, we will have e2e CI in this repo. That CI will comprise of a job that runs the Test Suite on all the models through different modes (onnx, turbine, direct) and dtypes (with and without bf16) and generates report artifact that are hosted on GitHub Pages which can be mailed to our team. We can keep track of all the models status (pinpoint where exactly they fail) and model regressions everyday. This will also let us have a page where anyone can see reports of our status for all models.  We will also have a Turbine Tank CI here. I'm going to move turbine tank implementation from Turbine repo to here. That will run all the models e2e through Turbine and upload the inline and exported param versions of the mlir to Azure. If e2e test fails, it will be marked as such so that it won't be sent out to IREE CI. The final step will be to connect the turbine tank to Scott's setup here. We will essentially add the mlir generated by tank into this setup everyday (create script that downloads the most recent torch mlir blobs that passed e2e from Azure for every model we want tested in IREE and run this script in another nightly actions job). This torch mlir can be run in iree against supported backend configurations and tested on every PR created there. I think this way we have all our testing and CI centralized here. This also allows all our testing to be connected and up to date as changes happen at every level.

I have changes stacked on top of this at https://github.com/ScottTodd/SHARK-TestSuite/pull/1. How would we like to proceed to getting these merged?
Note that the iree_tests/compile_tests.py and iree_tests/run_tests.py scripts are now completely replaced by a pytest iree_tests/conftest.py script.

I could merge that work into this branch and we could fully review before landing
(I think my preference) we could land this as-is and then I could send a second PR with the improvements

Yeah, it will help to land this PR and then iterate over it and have e2eshark, iree_tests and Sai's tests be there side by side and leverage components and evolve it. I can land it if there is not objection.


Restrict serving application folder index

We need to consider whether user can see the static folder index. By now, he can.

Landed in b4d3983


Update getting-started-with-the-debugger.md

(You can replace all of this text with your description.)
Before creating your pull request, please check your content against these quality criteria:

Did you consider search engine optimization (SEO) when you chose the title in the metadata section and the H1 heading (i.e. the displayed title that starts with a single #)?
For new articles, did you add it to the table of contents?
Did you update the "ms.date" metadata for new or significantly updated articles?
Are technical terms and concepts introduced and explained, and are acronyms spelled out on first mention?
Should this page be linked to from other pages or Microsoft web sites?

For more information about creating content for docs.microsoft.com, see the contributor guide at https://docs.microsoft.com/contribute/.

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

#sign-off

@Mikejo5000 This file is deleted in the private repo. Is that the "truth"?

@gewarren Yes, oops, thanks for checking. I forgot that when I signed off. I got rid of this generic version in favor of the language-focused versions, and redirected these links to debugger-feature-tour.md


Sealing roof air gap

The area where the overhang is.
We've mounted small 2x4 off cuts along the top ridge to provide a mounting point

[ ] measure the size of each gap
[ ] cut MDF to size
[ ] mount
[ ] spray expanding foam around edges
[ ] while we're at it, spray expanding foam around the other 3 edges as well

We don't have to do all these tasks at once. One a day.
Complete by April 20th.


Ability to filter by author id

would require indexing the author id, and adding detection in the URL to do so.

Is this never happening? This is almost 2 years old.


group-exports aggregating modules should be valid

I would like to make aggregating modules valid when using the group-exports rule.
Use-case
When aggregating modules in a single file the group-exports rule fails on because of multiple export declarations. This makes it invalid to re-export submodules from the root of a module.
Steps to reproduce

create a file with the following exports

export { default as module1 } from 'module-1'
export { default as module2 } from 'module-2'

validate the file using the group-exports rule

Expected results
No linting error.
Actual result
Linting error.

The specifiers being different should avoid the warning; if you had two of these statements from the same module, it should require you to consolidate them.


make it asynchronous

genuinely just make it async instead of using blocking requests it will improve the speed a bunch

What do you mean by asynchronous?

The asynchronous code is one that can be executed, without waiting for the server responses. When you send an HTTP request, you have to wait for the server response. That is lost time, because you can't do anything until the server responds. When you make an asynchronous request, the code continues to run, without waiting for the server's response. It is actually a code that runs on another code, to put it easy. And this provides a much higher speed.
Example:
https://www.twilio.com/blog/asynchronous-http-requests-in-python-with-aiohttp
Greetings.

What's the point? What are you going to be doing whilst a http request is pending? If you're thinking about handling multiple requests in a pool that just sounds like a recipe for an instant 429, especially as Instagram seems to have gotten even stricter recently with their API use. Also the requests module still isn't async-based.

Some of us use proxies, so in theory it could be faster. I've tried patching the session.get and session.post and it works well for retrieving statistics of users.
You can use this decorator to transform instaloader calls to async:
def force_async(fn):
    '''
    turns a sync function to async function using threads
    '''
    from concurrent.futures import ThreadPoolExecutor
    import asyncio
    pool = ThreadPoolExecutor()
    @functools.wraps(fn)
    def wrapper(*args, **kwargs):
        future = pool.submit(fn, *args, **kwargs)
        return asyncio.wrap_future(future)  # make it awaitable
    return wrapper

@aandergr I‘d like to contribute by adding optional async functionality based on aiohttp, if the maintainers are willing to accept and maintain it.
why async? I have an async web app that would need to fetch insta data on certain events and I don’t want that to be blocking


Adding ability to run gradle command with space

[x] All tests have passed. If this feature is not already covered by the tests, new tests have been added.
[x] The pull request is targeting the dev branch.
[x] The code has been validated to compile successfully by running go vet ./....
[x] The code has been formatted properly using go fmt ./....

Hi @keeganjm-bsc, the issue has been resolved in JFrog CLI v2.52.8. Please try it out and let us know if everything is working well. Thank you.


Eval with mps gives bad results

System Info
- `lerobot` version: 0.1.0
- Platform: macOS-14.7.1-arm64-arm-64bit
- Python version: 3.10.15
- Huggingface_hub version: 0.26.2
- Dataset version: 3.1.0
- Numpy version: 1.26.4
- PyTorch version (GPU?): 2.5.1 (False)
- Cuda version: N/A
- Using GPU in script?: <fill in>

Information

[ ] One of the scripts in the examples/ folder of LeRobot
[ ] My own task or dataset (give details below)

Reproduction
The diffusion_pusht agent from running
python lerobot/scripts/eval.py \
    -p lerobot/diffusion_pusht \
    eval.n_episodes=10 \
    eval.batch_size=10

fails all eval episodes on mac.
After some digging, this is coming from pytorch/pytorch#139550
Expected behavior
The same agent works with Cuda

Thanks for the hint.
@Xuzzo were you able to unblock training Le Robot on Apple GPU ?
It would awesome to make it work on my local MacBook Pro. I'd rather avoid purchasing a NVIDIA GPU or pay a cloud provider.

I'm using Apple M3 Max on MacOSX Sonoma 14.7.
I'm still seeing the issue. This is what I tried so far:
Built torch & torchvision from source
I built main branch from today for torch and torchvision modules, within the conda environment.
% pip freeze | grep torch
-e git+https://github.com/pytorch/pytorch@5273d8fd2ab28157a183c5eb7633b9b20457e51d#egg=torch
-e git+https://github.com/pytorch/vision@f7b1cfa8f7e10e0c157da6e55dc6f0237397faec#egg=torchvision

Torch
conda activate lerobot-dev
git clone -b main https://github.com/pytorch/pytorch
python setup.py develop

Torchvision
I used this trick to work around a compilation error.
conda activate lerobot-dev
git clone -b main https://github.com/pytorch/vision

brew install gcc

CC=/opt/homebrew/Cellar/gcc/14.2.0_1/bin/gcc-14 python setup.py develop

Dependency cleanup
Remove torch and torchvision modules from pyproject.toml as they are now imported directly from the conda env.
% git diff pyproject.toml
diff --git a/pyproject.toml b/pyproject.toml
index 59c2de8..4085caa 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -38,10 +38,8 @@ einops = ">=0.8.0"
 pymunk = ">=6.6.0"
 zarr = ">=2.17.0"
 numba = ">=0.59.0"
-torch = ">=2.2.1"
 opencv-python = ">=4.9.0"
 diffusers = ">=0.27.2"
-torchvision = ">=0.17.1"
 h5py = ">=3.10.0"
 huggingface-hub = {extras = ["hf-transfer", "cli"], version = ">=0.25.2"}
 gymnasium = "==0.29.1" # TODO(rcadene, aliberts): Make gym 1.0.0 work

Then run the cleanup of current module versions to fallback to the conda env versions.
poetry update

Enable MPS device
diff --git a/examples/2_evaluate_pretrained_policy.py b/examples/2_evaluate_pretrained_policy.py
index b2fe1db..0f0bdc0 100644
--- a/examples/2_evaluate_pretrained_policy.py
+++ b/examples/2_evaluate_pretrained_policy.py
@@ -30,6 +30,9 @@ policy.eval()
 if torch.cuda.is_available():
     device = torch.device("cuda")
     print("GPU is available. Device set to:", device)
+elif torch.backends.mps.is_available():
+    device = torch.device("mps")
+    print("Running on Apple silicon chip. Device set to:", device)
 else:
     device = torch.device("cpu")
     print(f"GPU is not available. Device set to: {device}. Inference will be slower than on GPU.")
diff --git a/poetry.lock b/poetry.lock

Run example script
% python examples/2_evaluate_pretrained_policy.py

Running on Apple silicon chip. Device set to: mps

Exception ignored from cffi callback <function ext_cpSpaceDebugDrawCircleImpl at 0x3f0eb4a60>:
Traceback (most recent call last):
  File "/opt/homebrew/Caskroom/miniconda/base/envs/lerobot-dev/lib/python3.10/site-packages/pymunk/_callbacks.py", line 103, in ext_cpSpaceDebugDrawCircleImpl
    options.draw_circle(
  File "/opt/homebrew/Caskroom/miniconda/base/envs/lerobot-dev/lib/python3.10/site-packages/gym_pusht/envs/pymunk_override.py", line 135, in draw_circle
    p = to_pygame(pos, self.surface)
  File "/opt/homebrew/Caskroom/miniconda/base/envs/lerobot-dev/lib/python3.10/site-packages/gym_pusht/envs/pymunk_override.py", line 231, in to_pygame
    return round(p[0]), round(p[1])
ValueError: cannot convert float NaN to integer

Your error is different to the one I had. I was able to run the script but the agent would fail all episodes. The workaround was to set "non_blocking=False".
Are you able to run the other eval scripts? I have the same setup (M3 Max with Sonoma 14.7) but had not problem installing torch. I am using torch==2.5.1 and torchvision==0.20.1

2_evaluate_pretrained_policy.py
Thanks! non_blocking=False fixed my issue. It mitigates the race condition ...
Following diff summarizes the overall change to run the script on Apple M3,
% git diff examples/2_evaluate_pretrained_policy.py
diff --git a/examples/2_evaluate_pretrained_policy.py b/examples/2_evaluate_pretrained_policy.py
index b2fe1db..af26445 100644
--- a/examples/2_evaluate_pretrained_policy.py
+++ b/examples/2_evaluate_pretrained_policy.py
@@ -30,6 +30,9 @@ policy.eval()
 if torch.cuda.is_available():
     device = torch.device("cuda")
     print("GPU is available. Device set to:", device)
+elif torch.backends.mps.is_available():
+    device = torch.device("mps")
+    print("Running on Apple silicon chip. Device set to:", device)
 else:
     device = torch.device("cpu")
     print(f"GPU is not available. Device set to: {device}. Inference will be slower than on GPU.")
@@ -73,8 +76,8 @@ while not done:
     image = image.permute(2, 0, 1)

     # Send data tensors from CPU to GPU
-    state = state.to(device, non_blocking=True)
-    image = image.to(device, non_blocking=True)
+    state = state.to(device, non_blocking=False)
+    image = image.to(device, non_blocking=False)

     # Add extra (empty) batch dimension, required to forward the policy
     state = state.unsqueeze(0)

eval.py
I had no issue with the eval script using nightly build of torch / torchvision.
Did you pass device=mps when running the script?
Maybe the related pytorch commit fixed your issue?
% python lerobot/scripts/eval.py \
    -p lerobot/diffusion_pusht \
    eval.n_episodes=10 \
    eval.batch_size=10 \
    device=mps
Fetching 11 files: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 11/11 [00:00<00:00, 169001.26it/s]
INFO 2024-12-15 14:22:38 on/logger.py:39 Output dir: outputs/eval/2024-12-15/14-22-38_pusht_diffusion
INFO 2024-12-15 14:22:38 pts/eval.py:479 Making environment.
INFO 2024-12-15 14:22:39 pts/eval.py:482 Making policy.
WARNING 2024-12-15 14:22:39 s/factory.py:28 Hydra config is missing arguments: {'noise_scheduler_type', 'do_mask_loss_for_padding', 'use_separate_rgb_encoder_per_camera'}
Loading weights from local directory
Stepping through eval batches: 100%|█████████████████████████████████████████████████████████████████████████████████████████| 1/1 [01:24<00:00, 84.09s/it, running_success_rate=0.0%]
{'avg_sum_reward': 25.546307949020633, 'avg_max_reward': 0.10569534381657245, 'pc_success': 0.0, 'eval_s': 87.26703977584839, 'eval_ep_s': 8.726703977584839}
INFO 2024-12-15 14:24:08 pts/eval.py:509 End of eval


Better support for upgrading the deployment process - use Tekton and Kfctl instead of (in addition to) Make

When we transitioned to blueprints for GCP we stopped using kfctl.  A big one was that it was faster to iterate just by using a Makefile to script the various kustomize, kpt, and kubectl commands needed to describe the deployment process. The resulting Makefile's are also fairly readable and users can easily customize them.
An unresolved question is how we make it easy for users to pull in updates to the deployment recipe.
Right now a Kubeflow install is laid out as follows
my-kubeflow/
    Makefile
    instance/...
    upstream/...

To upgrade a user just re-places upstream with the latest copy and then redeploys. We'd like the same process to pull in any updates to the deployment process. For example, if we've added extra steps to hydrate or to apply we'd like that to be applied.
The problem right now is that the the deployment recipe is stored in the Makefile which is outside of upstream.
The deployment recipe is the sequence of kubectl, kpt, istioctl commands to be executed to produce the manifests and apply them.
We'd like to store the recipe in upstream so that the recipe gets updated when a user pulls in upstream.
While we could continue to use Makefile to define the recipe, a more cloud native way would be to use a YAML file listing out the commands. Tekton pipeline's and Tasks provide an existing resource that is well suited for this purpose. For example, we could easily chunk up our Makefile into tasks (e.g. hydrate and apply) that would contain steps corresponding to the commands currently invoked by the Makefile.
The downside of Tekton is that it requires Tekton and thus a K8s cluster to run.
This could be addressed by a CLI that would simply read in the Tekton resources and execute the commands by shelling out.
We could easily bake this functionality into kfctl; e.g.
kfctl apply -f deploy-kf-pipeline.yaml

@kkasravi suggested something along these lines awhile back.

@animeshsingh FYI an idea for how we might re-integrate kfctl into the GCP process.

I worry that may be complicating things more than necessary. A local executor for tekton steps is also something new and we'd need documentation for which features we support and which not.
Did we consider just writing bash scripts for each make target and put those bash scripts in upstream?

For needed information, we can set up a convention of using env vars to pass to these arguments or a config.yaml in a conventional location.
I think both works, I'd probably prefer a config.yaml.

Or maybe another approach: https://www.gnu.org/software/make/manual/html_node/Recursion.html

a quick kubernetes local cluster can be created with kind.(this takes 30s) - kind create cluster. haven't tried Tekton on it, but no reason it shouldn't work ( have used kfserving tests in past)
https://github.com/kubernetes-sigs/kind#installation-and-usage

a quick kubernetes local cluster can be created with kind.(this takes 30s) -
Running a local K8s cluster is too much complexity.

Did we consider just writing bash scripts for each make target and put those bash scripts in upstream?
That's one option;

I like @Bobgy 's suggestion to use recursive make. This would allow us to follow a similar pattern to what we are doing with kustomize in that we would have an overlay (the Make in the blueprint) where users could add custom commands   and delegate to Make rules in the upstream branch. On upgrades this would preserve user customizations while pulling in any updates to the recipe.
e.g. ${MYKUBEFLOW}/Makefile:
.PHONY: apply
apply:
    make -C upstream/gcp  apply
    <user defined commands>

FYI @subodh101 since they have been cleaning up our Makefiles

I also feel @Bobgy 's suggestion is the right thing to do.
Few thoughts:

The new makefile would have the make recursive command step but what about the users who are using old makefile. They will have to add the make command in Makefile to update kubeflow?
Adding one Makefile in upstream is sufficient to achieve the goal here. We might not need more otherwise it will automatically remove purpose.

what about the users who are using old makefile

Users would have to manually update the ${KUBEFLOW}/Makefile. This is true today. With ever release of KF if make changes to the sequence of kubectl/kpt/yq commands to deploy Kubeflow they will have to update their Makefiles manually. This is what we are trying to address with this issue.

/priority p1

Several ways to reuse & override a makefile:

make include clause: https://www.gnu.org/software/make/manual/html_node/Include.html
recursive make + rule forwarding https://www.gnu.org/software/make/manual/html_node/Overriding-Makefiles.html

Include clause seems more lightweight, all makefile context can be shared, but there's less encapsulation either.
For recursive make, I'll need to verify which working dir will it be for the upstream makefile.

A few types of customizations people may want to do:

add extra commands for a target
replace all commands for a target

For recursive make, if you want to change any target that's depended on by more targets, it'll be very troublesome because you'll need to replace every target that depends on the target you changed.
For make include clause, adding extra dependencies/commands for a target can be done via https://www.gnu.org/software/make/manual/html_node/Multiple-Rules.html conveniently.
However, neither of the two solutions make it convenient to completely replace a rule (target + dependencies + commands).
Right now, I feel like the best solution is to avoid using dependencies in the upstream Makefile altogether.
Replacing commands is easier via: https://stackoverflow.com/a/49804748/8745218
Or if we do not care about error messages like:
Makefile:5: warning: overriding commands for target `echo'
upstream/Makefile:2: warning: ignoring old commands for target `echo'

We can ask users just redeclare a target + command to override the command.

A few types of customizations people may want to do:

add extra commands for a target
replace all commands for a target

For recursive make, if you want to change any target that's depended on by more targets, it'll be very troublesome because you'll need to replace every target that depends on the target you changed.
For make include clause, adding extra dependencies/commands for a target can be done via https://www.gnu.org/software/make/manual/html_node/Multiple-Rules.html conveniently.
However, neither of the two solutions make it convenient to completely replace a rule (target + dependencies + commands).
Right now, I feel like the best solution is to avoid using dependencies in the upstream Makefile altogether.
Replacing commands is easier via: https://stackoverflow.com/a/49804748/8745218
Or if we do not care about error messages like:
Makefile:5: warning: overriding commands for target `echo'
upstream/Makefile:2: warning: ignoring old commands for target `echo'

We can ask users just redeclare a target + command to override the command.


NPE in creating/updating datasets configured with custom aspects

Describe the bug
The REST API applying CRUD operation in dataset entity is not working anymore when a custom aspect is linked to the model of a dataset due to NullPointerException.
2023-09-25 16:14:15,094 [qtp2006034581-20] ERROR i.d.openapi.util.OpenApiEntitiesUtil:101 - Error reflecting entity: dataset aspect: customDataQualityRules
To Reproduce
Steps to reproduce the behaviour:

Create a custom aspect and associate it to the dataset entity as described in https://github.com/datahub-project/datahub/tree/master/metadata-models-custom.
Create a new dataset or update an existing one through REST API (POST {{datahub_url}}/openapi/v2/entity/dataset). The body can either contain or not the custom entity. The error happens in all the cases.
REST API returns a HTTP 500 highlighting a NPE as per log shown below.
If I remove the custom library jar / registry file from the plugin directory and restart GMS the same API call completes successfully.

Expected behavior
REST API should complete successfully and the custom aspect, if present, should be saved/updated.
Screenshots
N/A
Desktop (please complete the following information):

OS: MacOS
Browser N/A
Version N/A

Additional context

Containers are sun in Docker Desktop

Affected version: 0.11.0 and HEAD

I've just replicated what is on the documentation in terms of custom entity https://github.com/datahub-project/datahub/tree/master/metadata-models-custom

Stack trace of the issue in GMS
2023-09-25 16:14:15,094 [qtp2006034581-20] ERROR i.d.openapi.util.OpenApiEntitiesUtil:101 - Error reflecting entity: dataset aspect: customDataQualityRules
...
2023-09-25 17:14:15 Caused by:
2023-09-25 17:14:15 java.lang.NullPointerException
2023-09-25 17:14:15     at io.datahubproject.openapi.util.OpenApiEntitiesUtil.lambda$convertEntityToUpsert$0(OpenApiEntitiesUtil.java:85)
2023-09-25 17:14:15     at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
2023-09-25 17:14:15     at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)

custom model is correctly loaded at startup.
2023-09-25 19:06:58 2023-09-25 18:06:58,079 [pool-2-thread-1] INFO  c.l.m.m.registry.PatchEntityRegistry:110 - Loading custom config entity file: /etc/datahub/plugins/models/mycompany-dq-model/0.0.1/entity-registry.yaml, dir: /etc/datahub/plugins/models/mycompany-dq-model/0.0.1
2023-09-25 19:06:58 2023-09-25 18:06:58,079 [pool-2-thread-1] INFO  c.l.m.m.registry.PatchEntityRegistry:110 - Loading custom config entity file: /etc/datahub/plugins/models/mycompany-dq-model/0.0.1/entity-registry.yaml, dir: /etc/datahub/plugins/models/mycompany-dq-model/0.0.1
2023-09-25 19:07:04 2023-09-25 18:07:04,047 [pool-2-thread-1] INFO  c.l.m.m.registry.PatchEntityRegistry:147 - Discovered entity dataset with aspects customDataQualityRules
2023-09-25 19:07:04 2023-09-25 18:07:04,047 [pool-2-thread-1] INFO  c.l.m.m.registry.PatchEntityRegistry:147 - Discovered entity dataset with aspects customDataQualityRules
2023-09-25 19:07:04 2023-09-25 18:07:04,048 [pool-2-thread-1] INFO  c.l.m.m.registry.PatchEntityRegistry:158 - Adding aspect customDataQualityRules with spec com.linkedin.metadata.models.AspectSpec@9357a343
2023-09-25 19:07:04 2023-09-25 18:07:04,048 [pool-2-thread-1] INFO  c.l.m.m.registry.PatchEntityRegistry:158 - Adding aspect customDataQualityRules with spec com.linkedin.metadata.models.AspectSpec@9357a343
2023-09-25 19:07:04 2023-09-25 18:07:04,049 [pool-2-thread-1] INFO  c.l.m.m.registry.PatchEntityRegistry:147 - Discovered entity container with aspects customDataQualityRules
2023-09-25 19:07:04 2023-09-25 18:07:04,049 [pool-2-thread-1] INFO  c.l.m.m.registry.PatchEntityRegistry:147 - Discovered entity container with aspects customDataQualityRules
2023-09-25 19:07:04 2023-09-25 18:07:04,049 [pool-2-thread-1] INFO  c.l.m.m.registry.PatchEntityRegistry:158 - Adding aspect customDataQualityRules with spec com.linkedin.metadata.models.AspectSpec@9357a343
2023-09-25 19:07:04 2023-09-25 18:07:04,049 [pool-2-thread-1] INFO  c.l.m.m.registry.PatchEntityRegistry:158 - Adding aspect customDataQualityRules with spec com.linkedin.metadata.models.AspectSpec@9357a343
2023-09-25 19:07:04 2023-09-25 18:07:04,050 [pool-2-thread-1] INFO  c.l.m.m.r.PluginEntityRegistryLoader:149 - Loaded registry PatchEntityRegistry[identifier=mycompany-dq-model;[entityName=container;aspects=[customDataQualityRules]][entityName=dataset;aspects=[customDataQualityRules]] successfully
2023-09-25 19:07:04 2023-09-25 18:07:04,652 [main] INFO  c.l.g.f.s.ElasticSearchServiceFactory:56 - Search configuration: SearchConfiguration(maxTermBucketSize=20, exactMatch=ExactMatchConfiguration(exclusive=false, withPrefix=true, prefixFactor=1.6, exactFactor=10.0, caseSensitivityFactor=0.7, enableStructured=true), partial=PartialConfiguration(urnFactor=0.5, factor=0.4), custom=CustomConfiguration(enabled=false, file=search_config.yml), graph=GraphQueryConfiguration(timeoutSeconds=50, batchSize=1000, maxResult=10000), wordGram=WordGramConfiguration(twoGramFactor=1.2, threeGramFactor=1.5, fourGramFactor=1.8))
2023-09-25 19:07:04 2023-09-25 18:07:04,667 [main] INFO  c.l.m.c.search.CustomConfiguration:40 - Custom search configuration disabled.

Looking at this scenario, the openapi classes would not contain the required methods for custom aspects. The openapi endpoint should protect against this NPE and allow normal operations on the non-custom aspects. restli is the primary API for use with custom aspects.

This should be fixed here the sense that the NPE should be avoided.


Improve IndexableDataset with non-ndarray sources.

If the request is an instance of collections.Container but not a numpy.ndarray, do not attempt to do fancy indexing; instead, perform the indexing in a loop. This allows one to use an IndexableDataset with list sources in conjunction with a BatchScheme.

In truth I think maybe collections.Iterable is a better fit here. Let me update.


PowerToys sending Left Ctrl/Alt input continuously while Keyboard Manager is on

Microsoft PowerToys version
0.71.0
Installation method
GitHub
Running as admin
Yes
Area(s) with issue?
Keyboard Manager
Steps to reproduce
Enable key mapping like this:

Right Ctrl to Win + PrtSrc
Insert to Win + V

Then, press the mapped key once and wait for several minutes.
✔ Expected Behavior
The key mapping works normally without PowerToys sending input to another keys when not pressed.
❌ Actual Behavior
The key mapping works, but sometimes it weirdly sends left Ctrl/Alt button input continuously. The PowerToys app should be killed to stop it sending input. It happened system-wide.
Other Software
No response

/dup https://github.com/microsoft/PowerToys/issues/23438


Want to add a setting with a fixed refresh time.

Want to add one that can be refreshed at a specified time after startup. For example: I started the app at 21:47, which may make some of the short time to drops can not complete the viewing task, want him to automatically refresh the list on the next hour (of course, it can be other times), so that I do not need to start the app at the hour. After the completion of the treasure refresh time will be confused, hope that after the completion of the treasure, can refresh the next hour (can also be other time). Could you please make this function?

Sorry, I can only use software translation, I hope you can understand.

I am sorry, I do not understand what you mean. Maybe try writing it in your native language and telling ChatGPT to translate it with proper context?

I think you mean something similar to this in the original repo.
As far as I understand, the miner does already track drops, that are upcoming. Do the campaigns appear on twitch right as they start, making it impossible to see them in advance, or is the issue that the miner prioritizes not switching from what is currently being mined?

Yeah, I mean the same thing as him.

I would like to add a feature that allows the app to load at a fixed time after it is launched. For example, if I launch the app at 21:47, it may load again at 22:47 the next time. However, if there is a treasure drop task that starts at 22:00 and ends at 23:00, and it requires watching for 30 minutes, I will only be able to hang for 13 minutes if I wait for the app to refresh automatically. This is not enough time, so I need the app to load around 22:01.

What you are proposing would be a janky solution.
That's why I asked this:  Do the campaigns appear on twitch right as they start, making it impossible for the bot to see them in advance, or is the issue that the miner keeps mining what he is currently mining causing the miss?

Yes, the program can't see.

"The second example is: the treasure drop app successfully completes a treasure drop, but the completion time is 17:37, so the next refresh time will be at 18:37. If the same treasure drop task mentioned earlier occurs again, the watch time may not be enough. Therefore, it is hoped that the list can be refreshed around 18:01 after completing the treasure drop, instead of 18:37."

@coolingziyu What you are proposing would be a janky solution.
That's why I asked this: Do the campaigns appear on twitch right as they start, making it impossible for the bot to see them in advance, or is the issue that the miner keeps mining what he is currently mining causing the miss?

"Yes, this method is clumsy, and currently I rely on the Windows system timer to restart the app once every 24 hours to set the refresh time to the appropriate time."

Thanks, I'll look into that in the future, if I find the time. IT would probably be either a box where you input a time to reload, a setting adjusting the reload frequency, or a new function that periodically checks for new campaigns without a reload.

"Thank you for listening, and I look forward to your optimization of the program."

I think you mean something similar to this in the original repo.
As far as I understand, the miner does already track drops, that are upcoming. Do the campaigns appear on twitch right as they start, making it impossible to see them in advance, or is the issue that the miner prioritizes not switching from what is currently being mined?

Can confirm this is the exact thing happening to me, with the WF drops. I'll take a look at getting a PR up that adds a setting for reload frequency in mins. I saw your comment that you're away for exams / work for a while, but wanted to ask that when adding something new with English only localisation, what's the process for it being missing from other languages? What kind of safeguards would you think are best here too - like less than 15 mins reload frequency should not be allowed for example?

when adding something new with English only localisation, what's the process for it being missing from other languages?

If added to English.json, it should automatically appear on git localize, where people can then translate. Until it's translated, the English version is shown.

What kind of safeguards would you think are best here too - like less than 15 mins reload frequency should not be allowed for example?

I don't think there is a time that is both safe for not alerting twitch and frequent enough to actually work. Afaik, there are some drops that are really tight, where even the 15 mins might not be enough. The proper solution would be, as DevilXD said somewhere, a mechanism that doesn't do a whole refresh, but just checks for drops and reloads only if necessary. As for a quick solution to make it work, I think the best thing would be a box to enter a time at which a reload will happen. From what I remember, the code already uses a set time as a trigger for the next reload, it's just statically set to an hour in the future.


add router ID to OnOpenMessage()

closed in https://github.com/jwhited/corebgp/commit/69db22a3d880c3b8788c42b14d44d00913583635


smart_open will try to re-upload the last chunk that caused an except…

…ion when trying to close a connection when exiting S3OpenWrite context

Thanks!

@piskvorky I was relying on this old behaviour where the log stream was still written out up until the moment the unexpected exception occurs. At least this gives you a clue when debugging. What is the desired behaviour here?
 To me this means a job emitting logs for over 10 minutes and then suddenly hitting an uncaught exception means I lose all the logs.
If this was not intentional, you should probably revert this commit.

This should be fixed in some other way. In my case getting an unexpected
exception most certainly implied that the upload could not be complete in
the first place and trying to retry it would fail it any way. Basically it
would try it again and fail anyway, spending double the time to detect the
problem.
I get the context of your problem, but my guess it only worked because the
exception gets a single retry on re-uploading the last piece of file and my
reasoning behind this commit is that this should at least be generalised to
any amount of possible retries for a given upload.
On 8 Sep 2015 1:50 pm, "Vincent Driessen"<EMAIL_ADDRESS>wrote:

@piskvorky https://github.com/piskvorky I was relying on this old
behaviour where the log stream was still written out up until the
moment the unexpected exception occurs. At least this gives you a clue when
debugging. What is the desired behaviour here?
 To me this means a job emitting logs for over 10 minutes and then
suddenly hitting an uncaught exception means I lose all the logs.
If this was not intentional, you should probably revert this commit.
—
Reply to this email directly or view it on GitHub
https://github.com/piskvorky/smart_open/pull/20#issuecomment-138530210.

@nvie but it was NOT written out... unless the multipart upload is completed, the parts uploaded so far are neither here nor there... just dangling in the space...
And by the way, will S3 still charge you for this "dangling data", even if the objects are not normally visible. You'd have to abort the multipart upload manually.
I guess the question here is, what is the intended/best behaviour?

I'm sure the following used to work for me:
with smart_open('s3://...', 'w') as f:
    f.write('Hello world!\n')
    1/0

This throws a ZeroDivisionError, but the log was written to S3 and contained the line. Is this a special case because the output is relatively small so the multipart may only consist of a single chunk?


feat: initial prisma setup

What does this change?
A space to write about what your pull request changes and the reasoning behind your approach.
How was this tested?
How have you tested your changes?
Ways of testing could include:

Writing or extending an end to end test
Testing your change on a preview deployment

Accessibility
If applicable to your changes, have you:

[ ] Tested with screen reader
[ ] Checked to see if navigable by keyboard
[ ] Ensured that the colour contrast is passing

Documentation
If applicable to your changes, have you:

[ ] Added/edited the appropriate documentation
[ ] Added any component(s) to Storybook

Closing this experiment into the feasibility of Prisma. We have decided that the direction of this effort should instead be focused on migrating away from mongodb, and simplifying our stack as much as possible


Left analog flickering

https://user-images.githubusercontent.com/74694229/126051722-654ae6dd-9c33-4827-9aab-031dc444c241.mp4
Character keeps stuttering when moving. when I opened controller readings tab I noticed the small dot flickering
Happens in every game, tested on 2 ps4 controllers
Is there any options to ease this flicker thing?

Same problem!

It's only on bluetooth tho. Increasing poll rate seams so solve the problem, but the battery doesn't last for long


upper right navigation menu does not close when browsing to locations

the upper right navigationmenu stays open when heading to "locations" menu, but the same menu will close when going anywhere else.

Can you check if this can be replicated in https://alpha-preview.ctapp.io/#/ and https://app.ctapp.io/#/
If so, can you please create a gif or a video of this?
Also which browser,what version and what OS?

i'm on with win 7 x64 and latest Chrome v51.
i tried it now with 3 frontend versions and found  3 differend behaviours...^^
also the page you come from might be important....
On https://app.ctapp.io/#/

On https://alpha-preview.ctapp.io/#/


Add flushAtEOF flag to send last buffer on close of input

As per discussion of #75  - pull request to add an extra option - flushAtEOF. When set true will emit any remaining contents of the buffer when the input stream closes - e.g. the last line of a file that doesn't end with the split character.
Second change allows separator of null to not try to split the incoming chunk and pass it on as - is - this will help with binary files - eg images being overwritten into a common file.
Should also help fix #18

Hey @dceejay
I  merged the PR but a couple of questions popped in my head.
first the actual fix for tailing binary is this line:
https://github.com/lucagrulla/node-tail/blob/master/src/tail.coffee#L22
This would be enough to emit every time a new chunk is identified without buffering, hence no need for the final flush driven by flushAtEOF, right?
Is it fair to say that the that the block:
  if @flushAtEOF && @buffer.length > 0
    emit("line", @buffer)
    @buffer = ''

Is just to be extra safe?
With this block:
          if @separator is null
            @emit("line", data)
          else
            @buffer += data
            parts = @buffer.split(@separator)
            @buffer = parts.pop()
            @emit("line", chunk) for chunk in parts

buffer should never be filled is the separator is null.
Thanks for the clarification.

I think there are two use cases

what I call binary mode - where you don't/can't know the separator so just need the chunks to be delivered - in this case set separator to be null.
If you have text files that do contain separators you want to honour but may not include a separator on the final line. In this case you probably still want the final line to be emitted even if the file is closed.
You may want to do this (rather than "binary mode") if you also want to use the separator to slice lines in the middle eg a chunk containing multiple \n but not ending in one.

I see.  It does make sense.
I released a new version with the PR merged.
Thanks for the help.


Avoid putting unused .d.ts files into compiled extensions

With these flags in the base tsconfig.json:
{
  "composite": false,
  "declaration": false
}

Are these causing an issue - or are you proposing they are noise that doesn't need to exist in the extension package?

@jhurliman Can you expand on this a bit? I just tried making a new extension and don't see anything like this in the generated files.

Oh I see you're suggesting those options as a fix.


Licence : GPLv2 compatibility

Hello,
This library is licensed as Apache v2. This license is not compatible with GPLv2, making it impossible to link odbc-cpp-wrapper with any software licensed as GPLv2. Note that Apache 2 is compatible with GPLv3.
The problem occurs with this PR for QGIS : https://github.com/qgis/QGIS/pull/30734
QGIS is GPLv2+, the PR adds code and a dependency on odbc-cpp-wrapper, through dynamic linking. This could be ok, under the condition that QGIS with this addition would be distributed as GPLv3.
But at the same time, it would prevent distributing QGIS with a link to any other library not compatible with GPLv3, which is really annoying.
A solution  would be to add an exception to the Apache 2 licence of this software, so as to make it explicitly compatible with GPLv2.
The subject has already been discussed in various places, and such an exception already proposed :

https://blog.gerv.net/2016/09/gplv2-combination-exception-for-the-apache-2-license/
https://lwn.net/Articles/701155/

Would SAP be ready to add such an exception to the license, so as to ease the integration of this library ?

Thanks for pointing out this licensing issue.
I'll check with our legal department if we can add such an exception. That could take some time though...

I checked with legal and they approved the addition of the exception.
We will add the exception in case our contribution is accepted. The corresponding enhancement proposal is qgis/QGIS-Enhancement-Proposals#151.

This is good news ! I would suggest to add the exception whatever happens with QGIS QEP 151, as the problem will probably arise with other softwares.
The QEP 151 is not really likely to be merged, mostly because an integration in OGR would be a better solution instead. Same kind of licencing issue will probably arise with such integration though.

GDAL/OGR is licensed under an MIT/X style license, which seems to be compatible with Apache 2. Or do you mean that we need the exception anyway if the GDAL/OGR components including this library were consumed by QGIS or other GPLv2 software?

The latter indeed. At this point we may enter a grey area, or at least complex situation in the licensing world. Better make the exception anyway and not worry about it !

We added the exception to the license with #5. Thanks for the proposal!


The include path '%{computecpp_toolkit_path}' has an unrecognized %prefix%

System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 18.04.1 LTS on ODROID
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: NO
TensorFlow installed from (source or binary): source (building from source)
TensorFlow version: r1.12
Python version: 3.6.7
Installed using virtualenv? pip? conda?: n/a
Bazel version (if compiling from source): 0.15.0
GCC/Compiler version (if compiling from source):  7.3.0
CUDA/cuDNN version: n/a (ComputeCpp Info (CE 1.0.3))
GPU model and memory: (ARM Mali-T628)

Describe the problem
I am trying to build Tensorflow r1.12 with OpenCL support. I have ComputeCpp Info (CE 1.0.3). I am getting following error.
ERROR: /home/odroid/.cache/bazel/_bazel_odroid/0a12176dc649286ae7843d8ea212d4e2/external/local_config_sycl/crosstool/BUILD:12:1: in cc_toolchain rule @local_config_sycl//crosstool:cc-compiler-local: The include path '%{computecpp_toolkit_path}' has an unrecognized %prefix%
ERROR: Analysis of target '//tensorflow/tools/pip_package:build_pip_package' failed; build aborted: Analysis of target '@local_config_sycl//crosstool:cc-compiler-local' failed; build aborted
Provide the exact sequence of commands / steps that you executed before running into the problem
After ./configure with OpenCL and ComputeCpp, I execute following command
bazel build --local_resources 2048,.5,1.0 -c opt --config=sycl //tensorflow/tools/pip_package:build_pip_package
It gives:
Starting local Bazel server and connecting to it...
...................................................
ERROR: /home/odroid/.cache/bazel/_bazel_odroid/0a12176dc649286ae7843d8ea212d4e2/external/local_config_sycl/crosstool/BUILD:12:1: in cc_toolchain rule @local_config_sycl//crosstool:cc-compiler-local: The include path '%{computecpp_toolkit_path}' has an unrecognized %prefix%
ERROR: Analysis of target '//tensorflow/tools/pip_package:build_pip_package' failed; build aborted: Analysis of target '@local_config_sycl//crosstool:cc-compiler-local' failed; build aborted
INFO: Elapsed time: 8.349s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (67 packages loaded)
currently loading: tensorflow/python ... (3 packages)
Thanks for the help.

Hello @Kishwar, SYCL is not supported in TF 1.12. If you want to use ComputeCpp you will have to use a specific branch based on TF 1.9. The instructions are here: https://developer.codeplay.com/computecppce/latest/getting-started-with-tensorflow.
Also I think the issue mentioned here was a mistake.

Hello @Kishwar , Please let us know if your query has been addressed by @Rbiessy
Thanks.

Hello @msymp, I changed at one place in a file with path of "computeCpp". My compile crossed the failing point but now I have another failure. Currently I have stopped working on it. I will start again in next year.


net: ethernet: Fix build issue with C++

When compiling with CPP, compiler complains about implicit type
convertions. Fix them.
Signed-off-by: Loic Poulain<EMAIL_ADDRESS>

@loicpoulain, When fixing codestyle issues, please also fix typo in the commit message, s/convertions/conversions/.


Unify Error Reporting/Codes

Create error.cpp or something similar (couple w/new logger impl)

Done with Ns3lxcException


update dependabot

https://github.com/pomerium/internal/issues/1432

I wonder if we should hold off on this until we do some manual version updates? Running yarn upgrade in this project gives me lots of warnings.

Dependabot will close PRs that are no longer relevant. We could create that PR and merge it and theoretically any PRs that are no longer needed will get closed automatically. Or we can do them one at a time.


Create Modal: increase spacing between form items to 32px

Per this issue in Carbon, currently having an invalid state on a form field inside of the modal will push the modals height, since the invalid form text adds an additional 16px of padding.
After discussing with Andrew and Lauren Rice, we've decided to increase the spacing between form items to 32px to ensure that the invalid form text has room to display without pushing the height of the modal.

@sydrosa what is the status of this issue?

i don't think there's anything we can do about this. adding margin or padding won't fix this issue. we'd have to add a static height to these inputs to ensure when the message appears that the height isn't changed, which isn't a good idea because there's no way to be sure what the height should be since it's dependent on the content. i think this issue has to be addressed by carbon.
thoughts, @sydrosa?

This is an issue with the way Carbon has chosen to layout the TextInput, which they have described as working as designed.
As we have commented in the Carbon issue, a user  who does not want the content to move when the invalid message appears could set the helperText to something that is not visible to the user e.g.   which reserves the vertical space needed for the invalidMessage.


Allow blog posts to remain in markdown

As in, I shouldn't need to compile it into HTML myself, it should happen just before the page is served.


Sort 'Published Ports' column before display

Is your feature request related to a problem? Please describe.
The 'Published Ports' column in the 'Containers' page is not a sorted list, meaning it's hard to "train" yourself/poor UX to click those shortcut links frequently.
Describe the solution you'd like
Consistent sort (probably by exposed port, smallest to largest) applied before page is rendered.
Describe alternatives you've considered
Putting the exposed ports within a sub-table might work? The list is nice in terms of space usage, but not the most usable/readable for interactions.
Additional context

I've always found this feature interesting for containers that expose a short number of ports. When exposing 5+ ports it become hard to use and can cause issue with the datatable display.
We'd accept any suggestions regarding a better UX for this. A sub-table like the task sub-table in the services list could be an idea.

Maybe a table of the first N ports (by whatever sort), then if there are more than that exposed, a link to the 'Container Details' block (with those links then clickable?).
The 'Containers' table looks... okay with a long list of ports, but that could definitely get unwieldy:

But making the port configuration in 'Container Details' a table that matches the rest of the page better might be a good move (and easy to add links). Adding an anchor to go directly to the configuration details, or even specifically the port configuration, should be doable (I haven't looked at how Portainer creates pages, so I don't really know)


Prevents error because TMPDIR is unset

Thanks for your work !

Thanks for bringing it to the light. I've looked into where from $TMPDIR emerges and figured out it is not a given.
$TMPDIR is set by libpam-tmpdir which is completely optional. On the other side there is $XDG_RUNTIME_DIR which is set by libpam-systemd available in generic desktop installs. The latter is the way to go.
As for ~/.cache, I prefer temprorary files not survive reboot/logout.


Fix/reverse temporary disable question required feature

Reverse previous change that disabled this feature (due to finding it's way to live when not passed Testing phase)
Fix bug noticed when user edits the text showing (Optional) flag (and whether it appears correctly in Runner

Editor

Runner

Closing this PR to meet new (temporary) process way of doing things
Also, there's another commit to include so avoiding any problems with adding.

Closed this PR to meet new (temporary) process way of doing things
Also, there's another commit to include so avoiding any problems with adding.


Metrics::auc fails due to integer overflow

The auc function cannot support large datasets due to integer overflow. The algorithm that the function uses multiplies the number of positive cases by the number of negative cases. If either of these numbers is large enough, there can be integer overflow.
Would you be open to a pull request that fixed this bug?

This bug has been fixed on version 0.1.3 of the Metrics R package, which is being maintained here


Global Headers for Requests

It would be nice to have a way to specify a global requirement for HTTP request headers, just like the response does.
{
    "request": {
        "headers": {
          "token": "abc"
        }
    },
    "include": "services.json"
}

So that all the request must have a token field in their header, in order to get picked up by moco.

The global request matcher has been implemented in latest codebase. So you can build your own Moco jar to try this new feature.


redoing

Everything is done but debug messages could use some polishing and same for the algorithm

Denying this PR for the following reasons
This PR is no longer the same plugin at this point

All package names have been refactored under your name
The funding file has been deleted
The LICENSE file has been deleted (which is not allowed, btw, if you read the license.)The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
You've removed more of the plugin than you've left

This is far too altered to merge into master. Maintain on your own fork. Also, re-add the license file.

Denying this PR for the following reasons
This PR is no longer the same plugin at this point

All package names have been refactored under your name
The funding file has been deleted
The LICENSE file has been deleted (which is not allowed, btw, if you read the license.)The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
You've removed more of the plugin than you've left

This is far too altered to merge into master. Maintain on your own fork. Also, re-add the license file.

Yeah because i remade everything from scratch. The only bit I left was the config stuff because I didn't wanna bother remaking something that didn't need to be although I did change some stuff like bad practices, misspellings/miss types, organization and actually making the config be made so I do recommend you at least use my config version.
What is the funding file and what is it for
I didnt even think about the license but can't you just add it back
As for the part taking from EHM that should be replaced anyway since it doesn't work 99% of the time
Yes because I started with nothing and only readded what should be readded. The old code was unnecessarily long, filled with bad practices and hard to read the new plugin is now very compact.

Denying this PR for the following reasons
This PR is no longer the same plugin at this point

All package names have been refactored under your name
The funding file has been deleted
The LICENSE file has been deleted (which is not allowed, btw, if you read the license.)The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
You've removed more of the plugin than you've left

This is far too altered to merge into master. Maintain on your own fork. Also, re-add the license file.

Yeah because i remade everything from scratch. The only bit I left was the config stuff because I didn't wanna bother remaking something that didn't need to be although I did change some stuff like bad practices, misspellings/miss types, organization and actually making the config be made so I do recommend you at least use my config version. What is the funding file and what is it for I didnt even think about the license but can't you just add it back As for the part taking from EHM that should be replaced anyway since it doesn't work 99% of the time Yes because I started with nothing and only readded what should be readded. The old code was unnecessarily long, filled with bad practices and hard to read the new plugin is now very compact.

and wasn't the entire plan to remake everything anyway and didn't you need this for your server. I'd think you would be wanting to take the already completed plugin and be done than wait who knows how long for someone else to make the exact same thing

Denying this PR for the following reasons
This PR is no longer the same plugin at this point

All package names have been refactored under your name
The funding file has been deleted
The LICENSE file has been deleted (which is not allowed, btw, if you read the license.)The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
You've removed more of the plugin than you've left

This is far too altered to merge into master. Maintain on your own fork. Also, re-add the license file.

Yeah because i remade everything from scratch. The only bit I left was the config stuff because I didn't wanna bother remaking something that didn't need to be although I did change some stuff like bad practices, misspellings/miss types, organization and actually making the config be made so I do recommend you at least use my config version. What is the funding file and what is it for I didnt even think about the license but can't you just add it back As for the part taking from EHM that should be replaced anyway since it doesn't work 99% of the time Yes because I started with nothing and only readded what should be readded. The old code was unnecessarily long, filled with bad practices and hard to read the new plugin is now very compact.

and wasn't the entire plan to remake everything anyway and didn't you need this for your server. I'd think you would be wanting to take the already completed plugin and be done than wait who knows how long for someone else to make the exact same thing

This is not for my server.

This project was asked for by @Wuffeh, but the development of the plugin is not specific to their server. Please contact them for further information about what they would like from you for this.

This project was asked for by @Wuffeh, but the development of the plugin is not specific to their server. Please contact them for further information about what they would like from you for this.

Are you puppeh

This project was asked for by @Wuffeh, but the development of the plugin is not specific to their server. Please contact them for further information about what they would like from you for this.

Are you puppeh

You are not to continue this discussion. The PR is denied because the changes make it completely different from the current version.
You can keep and maintain your own fork as your own, but you're required per the license to keep the license on the repo.
Please stop responding, it was denied because you said you did everything from scratch. If it's true, then we don't want your PR, as you claim it is not our project, but again you are required to keep the license in your repo as noted in the license, since it is still a fork.
Stop commenting, further comments will not be responded to.


fix failing test since moving to tree-sitter 0.22

Oh sorry, saw your PR too late and fixed it already. Thanks anyway!


Can't run it

I just found this project and I'm eager to try it. However I can't run it. Is there any required version or dependencies? Using Homebrew lua:
$ lua -v
Lua 5.3.4  Copyright (C) 1994-2017 Lua.org, PUC-Rio
$ lua main.lua
lua: error loading module 'AppWarp.WarpUtilities' from file './AppWarp/WarpUtilities.lua':
	./AppWarp/WarpUtilities.lua:154: invalid escape sequence near '" HTTP/1.0
\ '
stack traceback:
	[C]: in ?
	[C]: in function 'require'
	./AppWarp/WarpClient.lua:4: in main chunk
	[C]: in function 'require'
	main.lua:16: in main chunk
	[C]: in ?

Truthfully I haven't done much work on this repository in some time. I wouldn't be surprised if it was broken. I believe I spent the bulk of my time just setting up the initial dependencies and test infrastructure.
If I get some time, I can look into this issue with more depth.
If you find a solution in the meantime, feel free to send a pull request.


Starred: separate trashed from untrashed files.

It's a small bug.
When I download starred files with
drive pull --quiet --starred --all
The starred files in trash bin are pull too
How to correct this?

Thanks @ManuCart for reporting this. So the issue is separating trashed and untrashed starred files.
PR coming up in a second.

Please get the latest from master. This issue was auto closed by the commit :) Please re-open if it persists.


Rebuild/duplicate lp-dashboard table in website

Depends on:  https://github.com/vegaprotocol/frontend-monorepo/issues/3302
Tasks

[x] Get data in for MVP
[ ] Make it look like the designs as much as we can in the table
[ ] Deploy
[ ] Get data in for Next Up
[ ] Repeat

Where it goes

Design
https://www.figma.com/file/ZQrh7fiFciTQ9GWD4Pp1Am/LP-Dashboard?type=design&node-id=1536-13160&t=F5M7U5at2xKoNuJz-0
The data
MVP

[ ] Market Name
[ ] Price
[ ] Volume
[ ] Target Stake
[ ] Liquidity Supplied & Percentage
[ ] Liquidity Fee
[ ] Settlement Asset

Next Up

[ ] Change in volume
[ ] Health Bar
[ ] Age
[ ] Expiry
[ ] Change in price
[ ] Market Code

@ckpringle not sure what criteria for this looks like really, yet.

Will move the "Next Up" to another ticket

Next Up stuff is in a new ticket


introduce a new flag on users to prevent liquidation

if flag is set then user account must not be liquidated

implemented.


required_if

can someone tell me how the required_if works?? i can't find the example on the doc. thanks in advance.

See examples here: https://github.com/skaterdav85/validatorjs/blob/master/spec/required_if.js

Thanks

How I can make a field required when an other field undefined(empty)?

I just added this rule to the docs


Constant dialogs

I'm working on a project with Vue and I keep getting this dialogs popping up whenever a validation problem comes up. The normal and expected behaviour is the error/warning underline in the particular code and the indication of the number of errors/warnings in the status bar, but this is new and quite annoying.

As you can see, two more notifications come up as I delete the particular directive. Is worth noticing that it doesn't happen with all the directives, for example no error when writing an empty v-model.
I tried disabling prettier just in case and it keeps happening. Also tried with this setting: "extensions.ignoreRecommendations": true but it also keeps happening.
I'll try this with other projects and see if it happens as well.
Let me know if you want a sample repo for this.

I hav this issue too, but less frequent.
Usually it starts when typing some unimported method like Vue's ref (it auto-imports obviously).

@rhernandog what happens if you validate that file in the error state in the terminal. Do you see some kind of exception?
And can you please provide me with a GitHub repository I can clone that demos what you are experiencing. That I can reproduce this and can investigate as well.


Implement new Kover DSL with project isolation support

[x]  design new DSL
[x] implement DSL
[x] implement project isolation (#144, #221)
[x] write tests on project isolation
[x] rewrite existed tests to new API
[x] extract API of coverage tools (#195)
[x] support Android build variant (#18)
[x] support filtering by source sets (#245)

Resolved in 0.7.0-Alpha


[Fix][Registry]server listener err

Codecov Report

Merging #6232 (db2f4b8) into dev (8694b9c) will decrease coverage by 0.06%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##                dev    #6232      +/-   ##
============================================
- Coverage     39.14%   39.08%   -0.07%
- Complexity     3250     3253       +3
============================================
  Files           638      638
  Lines         25246    25289      +43
  Branches       2737     2748      +11
============================================
+ Hits           9883     9884       +1
- Misses        14480    14519      +39
- Partials        883      886       +3

Impacted Files
Coverage Δ

...uler/server/master/registry/ServerNodeManager.java
1.48% <0.00%> (ø)

...r/server/worker/registry/WorkerRegistryClient.java
0.00% <0.00%> (ø)

...r/api/service/impl/WorkFlowLineageServiceImpl.java
36.08% <0.00%> (-16.30%)
:arrow_down:

...scheduler/api/service/impl/ProjectServiceImpl.java
77.90% <0.00%> (-0.59%)
:arrow_down:

.../dolphinscheduler/dao/entity/WorkFlowRelation.java
0.00% <0.00%> (ø)

...e/dolphinscheduler/common/model/DependentItem.java
0.00% <0.00%> (ø)

...lphinscheduler/service/process/ProcessService.java
33.73% <0.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8694b9c...db2f4b8. Read the comment docs.


Js engine. enter song name and not loading in

Song error
i was gonna make an song with 263M note's until this error showed up. i tried many time's to fix but keep failing. then when i came here i was like ooh i see. soo i kinda wana ask u if u could fix or help me. by @AndreNicholasJr YT

Are you modding a build from source or with Lua?
Lua
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
nope  just wana make an mod

Corrupted sound file.

666th closed issue

congrats!!11!


feat: add missing node type guards

PR Checklist

[x] Addresses an existing open issue

fixes #31
fixes #32
closes #25
re #3

[x] That issue was marked as status: accepting prs
[x] Steps in CONTRIBUTING.md were taken

Overview

Adds the missing node type guards from tsutils
Adds node type guards for node introduced to TypeScript since tsutils was last updated
Add a bunch of "union node type guards" (node type guards simple made up of unions of other node type guards)
BREAKING: isExpression works differently now

When making this PR, I noticed that it's probably possible to auto-generate a bunch of these type-guards; particularly with the ones defined in simple.ts and union.ts. This is probably worth looking into in future.
Note: No additionally test have been added.

I think this PR is ready other than for knip complaining. I'm not sure why it's complaining.

...huh, yeah, me neither. Weird. I'm guessing it's an export * that includes export *s? https://github.com/webpro/knip/issues/62

I guess you can add an explicit ignore to the config file

This isn't as easy as you would think it would be.
ignore seems to be "ignore these files entirely", not just "ignore any issue from these files".
So ignore all the files in src/nodes/typeGuards, then there is a cascading effect where createNode is now unused. If I ignore that then the dependency @typescript/vfs is now unused.

This isn't as easy as you would think it would be. ignore seems to be "ignore these files entirely", not just "ignore any issue from these files". So ignore all the files in src/nodes/typeGuards, then there is a cascading effect where createNode is now unused. If I ignore that then the dependency @typescript/vfs is now unused.

Ignoring the non-test files actually seems to resolve this.


AttributeError: partially initialized module 'people' has no attribute 'read_all' (most likely due to a circular import)

Description
During migration of swagger: 2.0 to openapi: 3.0.x, I was improving some swagger config. After finishing, I attempted to run my app, but it does not compiule and run anymore.
When calling add_api, the python throws error.
Expected behaviour
Python compiles and runs app successfully.
Actual behaviour
The following stacktrace is thrown:
Traceback (most recent call last):
File "/home/linards/Dokumenti/Dev/libgopyu/app.py", line 46, in
app.add_api(path, options = options)
File "/home/linards/.local/lib/python3.10/site-packages/connexion/apps/flask_app.py", line 72, in add_api
api = super().add_api(specification, **kwargs)
File "/home/linards/.local/lib/python3.10/site-packages/connexion/apps/abstract.py", line 149, in add_api
api = self.api_cls(specification,
File "/home/linards/.local/lib/python3.10/site-packages/connexion/apis/abstract.py", line 119, in init
self.add_paths()
File "/home/linards/.local/lib/python3.10/site-packages/connexion/apis/abstract.py", line 229, in add_paths
self._handle_add_operation_error(path, method, err.exc_info)
File "/home/linards/.local/lib/python3.10/site-packages/connexion/apis/abstract.py", line 244, in _handle_add_operation_error
raise value.with_traceback(traceback)
File "/home/linards/.local/lib/python3.10/site-packages/connexion/resolver.py", line 68, in resolve_function_from_operation_id
return self.function_resolver(operation_id)
File "/home/linards/.local/lib/python3.10/site-packages/connexion/utils.py", line 116, in get_function_from_name
module = importlib.import_module(module_name)
File "/usr/lib64/python3.10/importlib/init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1050, in _gcd_import
File "", line 1027, in _find_and_load
File "", line 1006, in _find_and_load_unlocked
File "", line 688, in _load_unlocked
File "", line 883, in exec_module
File "", line 241, in _call_with_frames_removed
File "/home/linards/Dokumenti/Dev/libgopyu/people.py", line 13, in
from app import version, status
File "/home/linards/Dokumenti/Dev/libgopyu/app.py", line 46, in
app.add_api(path, options = options)
File "/home/linards/.local/lib/python3.10/site-packages/connexion/apps/flask_app.py", line 72, in add_api
api = super().add_api(specification, **kwargs)
File "/home/linards/.local/lib/python3.10/site-packages/connexion/apps/abstract.py", line 149, in add_api
api = self.api_cls(specification,
File "/home/linards/.local/lib/python3.10/site-packages/connexion/apis/abstract.py", line 119, in init
self.add_paths()
File "/home/linards/.local/lib/python3.10/site-packages/connexion/apis/abstract.py", line 229, in add_paths
self._handle_add_operation_error(path, method, err.exc_info)
File "/home/linards/.local/lib/python3.10/site-packages/connexion/apis/abstract.py", line 244, in _handle_add_operation_error
raise value.with_traceback(traceback)
File "/home/linards/.local/lib/python3.10/site-packages/connexion/resolver.py", line 68, in resolve_function_from_operation_id
return self.function_resolver(operation_id)
File "/home/linards/.local/lib/python3.10/site-packages/connexion/utils.py", line 125, in get_function_from_name
function = deep_getattr(module, attr_path)
File "/home/linards/.local/lib/python3.10/site-packages/connexion/utils.py", line 73, in deep_getattr
return functools.reduce(getattr, attrs, obj)
AttributeError: partially initialized module 'people' has no attribute 'read_all' (most likely due to a circular import)
Steps to reproduce
Create following app:
# app.py

# Create the application instance
options = {"serve_spec": True}
app = connexion.FlaskApp(__name__.split('.')[0], specification_dir='./', options = options)
CORS(app.app)
WSGIRequestHandler.protocol_version = "HTTP/1.1"

# Read the swagger.yml file to configure the endpoints
path = Path('swagger.yml')
if (path.is_file() & options['serve_spec'] is True):
    app.add_api(path, options = options)

# Enable Flask on Connexion
app = app.app

# Create a URL route in our application for "/"
@app.route('/',methods=['GET','POST','PUT','DELETE'])

# people.py

VERSION = {
    "Default": {
        "cod": 200,
        "version": __version__,
        "filter": "*",
        "flavor": "final"
    },
    "Current": {
        "cod": 200,
        "version": __version__,
        "filter": "*",
        "flavor": __status__
    },
    "Latest": {
        "cod": 200,
        "version": __version__,
        "filter": "*",
        "flavor": "alpha"
    }
}

def read_ver():
    """
    This function responds to a request for /api/version
    with the complete lists of versions and their changelogs
    :return:        json string of list of version
    """
    # Create the list of versions from our data
    return [VERSION[key] for key in sorted(VERSION.keys())]

# swagger.yml

openapi: "3.0.3"
info:
  description: |
    <obfusciated>
  version: "<obfusciated>"
  title: <obfusciated>
  termsOfService: <obfusciated>
  contact:
    name: <obfusciated>
    url: <obfusciated>
    email: <obfusciated>
  license:
    name: MIT
    url: <obfusciated>

#basePath: /api
servers:
  - url: <obfusciated>
    description: Main (production) server

# Paths supported by the server application
paths:
  /version:
    get:
      operationId: people.read_ver
      tags:
        - version
      summary: Read the entire list of versions
      description: Read the list of versions
      parameters:
        - name: version
          in: query
          schema:
            type: string
          description: Name of version to get from version list
          required: true
        - name: filter
          in: query
          schema:
            type: string
            enum:
              - Latest
              - Current
              - Default
            default: Latest
          description: Filter for version presets
          required: false
      responses:
        200:
          description: Successfully read version list operation
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    cod:
                      type: string
                    version:
                      type: string
                    filter:
                      type: string
                    flavor:
                      type: string

Additional info:
Output of the commands:

python --version
pip show connexion | grep "^Version\:"

Python 3.10.7
Version: 2.14.1

app.py:
from flask import config
from flask_cors import CORS

from werkzeug.serving import WSGIRequestHandler

import connexion
import logging

from datetime import date```

people.py:

System modules
from datetime import datetime
3rd party modules
from flask import make_response, abort
from app import version, status```

Hi @HolimaX, Since the issue is related to a circular import, could you include your imports?

Pasted code snipps above ;)

Connexion imports people.py when resolving the operation_id in your spec on calling add_api() in app.py.
So from app import __version__, __status__ in people.py is causing the circular import.
You should be able to restructure your code to prevent this.


GH-180: Support for config driven Discovery Client

#180 : Support for config driven Discovery Client.

When you get a chance can you give it another pass @spencergibb, I have now marked NoOp* as deprecated, made SimpleDiscoveryClient as the default one.

another pass @spencergibb, I have refactored the tests, moved them from NoOp* to Simple* where relevant.

Any other changes you want me to make on this PR @spencergibb

Will look again today.


Do refactoring/Revision before the first release

Is your feature request related to a new game or help the app to be better? Please describe the feature.
Do a refactoring/revision to have a better codebase and eliminate bad/unused code

should remove cache on search country which doesn't seem to need to be cached


Watermark color incorrect

The placeholder color should not be modified as it is too hard to override in app.css.
Preferably it should be provided as a property that can be set with a default value of #cccccc.
[contenteditable=true]:empty:not(:focus):before {
  content: attr(placeholder);
  color: rgba(0,0,0,0.6);//remove this line or use attr(watermarkcolor)
}

By not specifying it, I can override it more easily in app.css
.ember-content-editable:empty {
  color: #cccccc;
}

Thanks, I've moved where it is specified to match your second block of code - that way the default styling can remain and overriding it is simple :)
Fix is in 0.3.2.


System.IO.FileNotFoundException: Could not load file or assembly

Following code ends by System.IO.FileNotFoundException: 'Could not load file or assembly 'System.Drawing' or one of its dependencies. The system cannot find the file specified.'
var serializer = new Hyperion.Serializer();

byte[] serialized;
using (var ms = new MemoryStream())
{
    serializer.Serialize(new System.Drawing.Point(10,15), ms);
    serialized = ms.ToArray();
}

serializer = new Hyperion.Serializer();
using (var ms = new MemoryStream(serialized))
{
    var res  = serializer.Deserialize(ms);
}

It is because version, culture and public key of this system assembly is not stored in serialized data.
Only text "System.Drawing.Point, System.Drawing" for type is serialized.
Point of issue can be seen in following code:
var type = Type.GetType("System.Drawing.Point, System.Drawing"); // returns null
var type2 = Type.GetType("System.Drawing.Point, System.Drawing, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"); // returns Point type

How to store more details for serialization / deserialization process? It would be fine if complete type definition would be serialized and if unable to deserialize more general approach would be used (omitting version, public key)
Thanks for advice.

Experience the same problem but with System.Windows.Media.Imaging.CachedBitmap


Update free-podcasts-screencasts-en.md

A podcast covering the JavaScript language and more broadly web and frontend technologies, with guests from the open-source community. It's hosted by OpenReplay, an open-source session replay tool for developers. The podcast is available on the Apple platform, Spotify, and Amazon Music. The Podcast is totally free and is for programmers of all levels and experience.
What does this PR do?
Add resource(s) | Remove resource(s) | Add info | Improve repo
For resources
Description
Why is this valuable (or not)?
How do we know it's really free?
For book lists, is it a book? For course lists, is it a course? etc.
Checklist:

[ ] Read our contributing guidelines.
[ ] Search for duplicates.
[ ] Include author(s) and platform where appropriate.
[ ] Put lists in alphabetical order, correct spacing.
[ ] Add needed indications (PDF, access notes, under construction).
[ ] Used an informative name for this pull request.

Follow-up

Check the status of GitHub Actions and resolve any reported warnings!

@Dkeys4 the problem is in file casts/free-podcasts-screencasts-en.md line 197. move that line to line 177

linter issue still persists. let me check on the issue and review your changes.

@Dkeys4 the problem is also in file books/free-programming-books-bn.md in your repository. please make sure that your repository is up-to-date with the upstream repository. you can sync your repository with the upstream from your GitHub UI and also from terminal. If you are not interested to sync with upstream then make the following chnages in books/free-programming-books-bn.md

move line 4 to line 6
swap line 23 and 24
move line 60 to line 62 (means move line 61 to line 60, line 62 to  line 61 and move line 60 to line 62)

and then commit. hope it will resolve the linter issue.
note: maybe this problem occurs due to wrong sync from the upstream(not sure what happened from your end) because that file does not appears in changed files lists so it was quite unexpected

this PR suffered from a broken build caused when we added bangla valiidation. Sorry for the trouble! the resource is added in #10980


combined match arms don't get separate branch coverage

When match arms are combined with |, the combined arm is not seen by llvm-cov as having multiple branches.  Note that clippy will flag them when not combined if they can be combined.

I think this will be supported in https://github.com/rust-lang/rust/pull/124154 or https://github.com/rust-lang/rust/pull/130744.


fix packed field definition

Formally field should be considered packed only if property packed is equal to true.

Thanks! Please rebase on master and I'll merge.

No need to close — git rebase master and then git push -f would update the existing PR.


Do not get settings for special groups abuse and postmaster

On the case.
On Tue, Nov 15, 2016 at 4:11 PM, Jay Lee<EMAIL_ADDRESS>wrote:

@jay0lee commented on this pull request.
Need to check on group create and update also.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/jay0lee/GAM/pull/334#pullrequestreview-8726433, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AIU8L7uf3U0kVIb4OrissIhwu1Y2xKLrks5q-kobgaJpZM4KzLl4
.

--
Ross Scroggs
<EMAIL_ADDRESS>

Create/update handled.
<EMAIL_ADDRESS>On Nov 15, 2016, at 4:11 PM, Jay Lee<EMAIL_ADDRESS>wrote:

@jay0lee commented on this pull request.
Need to check on group create and update also.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.


Check if metadata is available in commons.js

What does this Pull Request do?
Added code which only adds the suffix fcr:metadata to a resource URL if metadata is available.
Background: For a possibly strange use case we have references to external resources which are not known to fedora, so fedora does not have any metadata about these resources. This led to a problem because checkIfNonRdfResource has code which tries to provide metadata instead of the binary content by adding the fcr:metadata suffix if a HEAD request does not have a Link-Header (see fcrepo4#1168)
For our non-fedora resources this leads to 404 errors. I worked around this by testing if adding the suffix brings up status code 200 in a second HEAD request.
What's new?
Added 5 lines of JavaScript code which sends a HEAD request to the resource and only adds the fcr:metadata suffix if the status code is 200.
Additional Notes:
This change does not change the original behaviour for resources known to Fedora, except that an additional HEAD request is made when the user clicks on a link.

Hey @gvasold. Thanks for this, just so I understand better. You have an external binary but you do not have any metadata for it? Can you provide how you create those items so I can test this out. Cheers.

After taking a closer look on it, I found out that the problem is very specific to our server setup, because we are hosting and referencing files located on the same host, but not in the repository. So for example a triple like
<> xsl:hasXsltToLATEX https://myserver.org/xsl/some.xsl

matches this condition, which results in piping the click through  checkIfNonRdfResource() which adds the fcr:metadata suffix. Resources with other host names are not affected.
As our setup is very special, I do not know if it makes sense to add this to Fedora as it includes an extra HEAD request for each click on a link pointing to the servers hostname, but if there's interest, I'd be happy provide a clean version of my fix (sorry for the typos, I've typed the code into the online editor of github, which was stupid).

@gvasold Hmmm it kinda does as the /fcr:metadata suffix is a Fedora-ism and should not be assumed to apply to all things. Now that I've got some more information I can try to create a couple tests to see how our javascript is handling them. Thanks.


split sql from mongodb model

this will allow developers to switch between MongoDB and SQL database models easily.
by checking the configuration option in the Laravels database configuration file, we can specify which model class to use for the Developer model.
the developer doesn't care about the default database driver. he extends MongoDB model in his model. MongoDB model on the other hand has to decide which model to use based on the default database.
this way the developer doesn't have to change the extended model in his model if he decides to change the driver for any reason.

I'm a strong 👎 on this PR, mainly because it is based on completely wrong assumptions.
First of all, there is this assumption:

this will allow developers to switch between MongoDB and SQL database models easily.

This is not how you should build applications. Migrating between MongoDB and a relational database is no easy task that can be accomplished with a single change of the model. A model for a typical relational database does not translate to a model for MongoDB 1:1. In relational models, you often need foreign key references to model relationships, whereas in MongoDB you have other tools. Consider the simple example of a list of tags associated with a blog post: while you'd need to extract the list of tags to a separate table in a relational database to fulfil normalisation requirements, in MongoDB you'd store a list of tags in the original record and be done with it. Same with "richer" data, where in MongoDB you'd embed an entire document whereas you'd have to extract data in a relational database because you'd want "atomic values" (exceptions apply, but more on those later).

by checking the configuration option in the Laravels database configuration file, we can specify which model class to use for the Developer model.

This is a horrible approach at solving the problem above. You're looking at the default database adapter and changing the behaviour of the class, and all of it to serve a use case that isn't one. I'm a big believer in using the right tool for the job, which includes using the right database. In some applications this is only a relational database, in others this is only MongoDB, but in many this will be a combination of the two. This is perfectly fine, and TBH the way this package integrates the two (by having hybrid references that point to models in relational databases) is better than a number of other approaches I've seen. This solution does nothing but complicate that.

the developer doesn't care about the default database driver.

The developer should start caring about the default database driver. Remember, while SQL may be standardised across databases, features aren't. It's a big difference whether I use MySQL or PostgreSQL, because the latter allows me to build difference schemas (e.g. by using array fields, composite types, built-in validation constraints, and much more). The same goes for MongoDB: your schemas are designed completely different from relational databases. So while the developer may not care about the database, this is not what a library like Eloquent is there to solve. It's designed to make working with model objects easier, not to hide your database from you.

he extends MongoDB model in his model. MongoDB model on the other hand has to decide which model to use based on the default database. this way the developer doesn't have to change the extended model in his model if he decides to change the driver for any reason.

There is another reason for why you'll want a different model: MongoDB offers an entirely different query engine. It doesn't understand SQL (some tools do, but that's outside of the scope here), but if understands aggregation pipeline which SQL databases don't understand. There are big advantages to both, and knowing how to create optimised queries for your database is a skill that engineers should have. Writing efficient queries for a database also requires you to know what database you are using, so hiding that from the engineer isn't a good call.
While I do want to make it easier to integrate MongoDB into Laravel applications, this absolutely isn't the way to go. We don't want to limit an ORM like Eloquent to only offer a subset of features that's common to every database it supports, but we rather want engineers to be able to take advantages of the features each database brings, and allow them (or rather, require them), to choose the database based on their use-case.

@alcaeus Thank you for providing such detailed information. I had the idea of creating an laravel app that would offer real-time benchmarks for both MySQL and MongoDB. Initially, I thought it would be a good idea to propose this to the package maintainers themselves. However, after learning from your explanation, I understand that it is not possible to add this kind of functionality to the core database packages.
Nonetheless, I appreciate your guidance, and please let me know if you have any further suggestions or insights.


Prompt should not infer project_name from the path

The existing project_name implementation infers itself the directory the application exists in. However, this expectation fails several situations, such as

Docker conventionally puts applications in /app
Capistrano conventionally puts applications in /:prefix/project_name/releases/20181126-020459-399a6ff/

Instead, this infers the project name from the Rails.application class name, which is set by rails new. A similar approach is used in the marco-polo irb prompt gem:
https://github.com/arches/marco-polo/blob/0f53f5645bceac45757f061fc9b53ab2396afda7/lib/marco-polo.rb#L17

LGTM, thanks!


[FEAT]: Match lualine modified style; append the modified symbol instead of replacing the filetype icon

Requirements

[X] This feature isn't just a vague idea and can have a good practical solution.
[X] I'm completely sure that this feature fits into this plugin.
[X] I'm willing to implement this through a PR.

Problem
The current behavior of show_modified will replace the filetype icon :
<icon_or_modified?> <text>

Solution Suggestion
Match the lualine style: keep both the filetype and the modified symbol when show_modified is true:
<icon?> <text> <modified?>

Workaround
Updating the ui/components.lua and the ui/entry.lua, now it displays both the icon and the modified symbol:

PR: #124


There's science techfab stuff in sec techfab

Description

Reproduction

Screenshots

Additional context

You mean chimp ammo? That was intended in the PR and got merged.


ENH: Add minimum_fs_version input to handle outdated fsaverages

This addresses an issue that popped up in https://github.com/poldracklab/tacc-openneuro/issues/23 - with the FS7 migration, we should be aware that fsaverage directories generated from previous FS versions are incomplete and will lead to errors.
This proposes a new input, minimum_fs_version, which checks if the <space> directory includes newer files. If not, it will remove it and make a fresh copy.

I think your test will fail now. Otherwise looks good.